Skip to main content

Full text of "The Transactor Magazine Volume 5 Issue 01"

See other formats

Commodore 64: Comparison of 4 Wordprocessin^ Packages 

I* The Tech/News Journal For Commodore Computers Vol. 5. 


Breaking the 8 Sprite Barrier 

Sprite Rotation 

Projectile Plotting 

lUlore Screen Blitzes 

VIC 20 Sounc^ffects 

The PundairaRtais oflVlusIc 

Voic§ Interfa^ For The CBM 

Issue 01 


Plus: A First Look at the New Commodore 264 


Deyeloping a mind 
for the Future. 





Color SOsSS.gscDN. 

Produces BO Columns With Coloc' 

N&ed5 No ^alra Hafd^are 

Use Wi&i Terminal Programs 

Uses Na Basn: Memorv iR the S4 

D^veldp Vour Own Programs 

SUPER BASIC s46.9sc™. 

* Gives you 3 di^l^renl versjon^ of Corrimodore 

Basic PT^3orflrT^l^g Lanfluage Version 4 PLUSl 

A BuiM in Machine Language Monilor^ 
- Otsk & F\iB MainlenancB Cortimandfi 

Data Handling Commands 

Graphics Plus Ba^ic 

Cofnpalib^ w^lh Commmodore's "B" Senes & 

Muc^ Much More' 


RTC's Answers 1o Program Recreahon 

Con^afla Prmler s Ffle ID SCRIPT 54 "a Files 

SUPER COPY $39.95'^DN- 

Surur Fa&l Dish Copies on a 1 54 1 
Copy Enrira Dish en 7 Umutes or Lflsa 
Copy Selec: led Files 

Complele Pallef n MaTchmg 
Full Prompfs 

BASIC AID $49.95 CDN. 

VouT Aid to WFHing Programs 

Allows ScrDllmg Through Programs 
Adds 33 more Commands Iq the Basic Language 
Mas Find- Change. Merge. Move Commands 
Convert He>L. Binary anrl Decimal Numbers ar^d Morel 


SCRIPT 64 & SCRATCH PAD 64s1 29.oo 

Scnpl 64 
Word processor in French and English 

a Q Columns 
Glol:^! Search and Replace 
User Created Dictionary 
Spellmg Check 
Serai ch Pad e 4 
The Database-' Mail List in One 
Merges wiih Scfipr 64 Word Processor 
Print oul Labels. Envelopes. Mail UstS Wore 
Suilabt&i^itTi both SinglBanO Dual Disk Drives 
Fully C64 L-nk Compatible 


The Smart 64 

Give These Expanded Capabilities 
to Your 64 and VIC 20 

* Tha ability to transfer dgta from any tvpa of device to anorher 
[IEEE, 5&r^l. Parallel) 

* BASIC 4.0 which allows you TO run more PET BASIC program^ 
and gives you extended disk and l/D commands. 

* The ability To have several 64s on line Together - sharing com- 
mon IEEE devices such as disks or primers with Spooling 

* Builrfnmachfnalanguagefnonitof. 

* A buiIMn lerminel or modem prosram wh^ch allows the aysTem 
to communicele Through a modeni to many bulleTJn boan:! 
sysWrrts and olher computer mainframes. 

* Comparability with CP/M* 

Confact vour local Commodore dealer or RTC, 

Mail orders also bv car^tled cheque, elCn 

Up 10 S more 64s 

10610 Bayview Avenue (Qayview Plaza) Richmond Hill, Onlario, Canada L4C 3N8 (416] 884-4165 

CAD / CAM! DONT SPEND 25k, 50k 
or $500,000 BEFORE YOU SPEND $79 



This book will provide managers, 
engineers, manufacturing personnel 
and any Interested persons an 
understanding of the fundsmentsis of 
Cmiputer Aided Design [CAD] and 
Computer Aided manufacturing [CAM] 
applications and technology. 


The program will expose you to the 
various CAD/CAM terminologies used. 
Herdw^ere and software comparisons 
will be explored with heavy emphasis on 
their advantages and disadvantages. 
Cost justification and Implementation 
are presented using case studies. 


The course is designed for but not 
limited to: 

— Those managers, engineers and 
research professionals associeted with 
the menufecturing industry- 

— Personnel from Product, Tool 
Design, Plant Layout end Plant 
Engineering who are interested in 



This program will enable participants to: 

1 . Learn basic CAD/CAM Vocabulary, 

2, Better understand the various hard- 
ware and software components us- 
ed in a typicel CAD work station. 

3. Select the existing CAD/CAM 
system most appropriate for cur- 
rent and projected needs, 

4.ME^e an effective cost justification 
as to Why they SHOULD or 
SHOULD NOT implement a 
CAD/CAM system. 

5 , Apply and use computer graphics as 
e productivity tool 


1 . Introduction 

a. History of CAD/CAM 

b. Importance of CAD/CAM 

2. Graphics work station peripherals 

a. Input 

b. Output 

c. Advantages and disadvantages 
of input and output devices. 

3. Computer Graphics Systems 

a. Micros 

b. Minis 

c. Main Frames 

d. Turnkey Graphics systems 

4. Software 

a. Operating systems . 

b. Graphics Packages 

c. Graphics Modules 

5. Computer Aided Design 

a. Geometric Definitions 
[Porits, Lines. Circles, ETC.] 

b. Control functions 

c. Graphics Manipulations 

d. Drafting Functions 

e. Filing functions 

f . Applicetions 

6. Implementation 

a. Determining needs 

b. Purchasing and Installing 

c. Getting Started 

7. Cost Justification and Survey 

a. Cost comparisons of two and four 
work station systems. 

b. Presentation of recent survey of 
CAD system users 


1 , "Creation of a Large Data Base for 

a Small Graphics System" 

2. "Shortest Path Wgorithm Using 

Computer Graphics" 

Of course you could spend as much as 
S495, $595 or $695 for a similar 3 day 
seminar even though this book is not a 
computer program. 

We tell you April 15th for a special 
reeson .-this product may be tax 
deductible depending on your field or 
needs. This 1 70 page course will satisfy 
any of your CAD/CAM needs. We 
guarantee it. 

Please send $79 to: 

P.O. BOX 4364 
FUMT, Ml 48504 














The faitesi and easiest lo use 
asiembter (or the Commodore 64* 

Paf 64 enable* tf>e us€r co perform 
iaemhly language pr ogramm<ng using ibc 
51 antfard M OS mn emonics . » 69 ,9 5 

-^^ POWER 64 

fff Is an absolutely indjspensible aid to 

t \b the programmer uirng Commodore 

64 BASIC. Power 64 turbo-charges 

resident BASIC wth dozens of new super 

vjsefuJ command! bke MERGE, UNDO, 

TEST and DJSK as well as aH tbe old 

standbys such as RENUM and SEARCH & 

REPLACf . includes MorePower 64. 


--^^ TOOL BOX 64 
4f Is the ultimate programmer's utilrty 
l^■. package. Jndudes Pi* 64 ifisembter 

and Power 64 BASIC soup-up kit alL ^ 

together \n one My mtegrated ah^T'"'^*^^'''^' 

ecopomlcal package. » 1 29.95 


Is ail easy to use spelHng checker 
wrth a standard dictionary expandable 
to 80.000 words. SpellPro 64 quickly 
adapts itself to your personal vocabulary 
and business jargon allowing you to add and 
delete words to/from the dictionary, edit 
documencs to correct unrecogmied words 
and output lists of unrecoghiied. words to 
printer or screen. SpeliPro 64 was designed 
to work with the WordPro Series and 
other wordprocesstng programs using the 
WordPro Trfe format, »69,95 

available for Commodore B032 computers 
equipped with either Commodore 4040 or 
BOSO Disk Drives. Further Information on 
request , 



PAL 64 


, Ccrfnmodor* 64 and Commodo™ *-t 
^ irjdefnirks of Commodocft Buprw^ 
Machines Inc. 





W Th(s brand new offering from the 
0» originators of the WordPro Series 
brings professional wordprocessmg lo the 
Commodore 64 for the first time. Two 
years under development, WordPro 6^ 
features 100% proportional printmg 
capability as weH as 40/80 column display, 
automatic word wrap, columniiation , 
alternate paging for headers & footers, four 
way scrolling, extra teitt area and a brand 
new "OOPS" buffer that magically brings 
fcwk text deleted in error. All you ever 
dreamed of rn a wordprOc«sor program, 
WordPro 64 «ts a. new high standard for 
the software industry to meet. $69.95 

-^|^MAILPR0 64 

•^ A new generation of data 
t^ organizer and list manager, MailPro 
■64 *5 the easiest of all to leam and use. 
Handles up to 2.000 records on one disk, 
pri/^ts multiple labels across, does minor 
tot editing ie: setting up invoices. Best of 
aiL Mai*Pro 64 resides entirety wfthin 
memory so you don't have lo constantly 
juggle disks [ike you must with other data 
base manacers for the Commodore 64. 
^ $«9.9S 

- ^- 








M-^ MAILPIKD M ^^^4 


rzz F*-^ 




' '^1*^-4^*-^" %^ tvT 

m -^ 

Editorial 5 

News BRK 6 

Letters 16 

Bits and Pieces 18 

CompuKinks 23 

The MANAGER Column 26 

Comparison Review: 

Four Wordprocessors For The 64 33 

The New Commodore Computer: C264 . 43 

Subroutine Eliminators 45 

A Quick Musical Tour 46 

Waves For The 64 49 

Programming Sound On The VIC 20 50 

Sound Effects 52 

The SID In Review 55 

Sound Maestro 56 

Sprite Rotate 58 

QUASIMOB: Break The 8 Sprite Barrier . 60 
Changing The C64*s Screen Colours ... 64 

Simple Harmonic Motion 65 

Projectile Motion 68 

Voice For Commodore Computers 70 

Hardware Corner 72 

How Cartridges Work 74 

Generator Programs 75 

Advertising Section 78 

Advertising Index 92 

The Transactor 

Volume 5, Issue 01 


nB Twh/H«w I J Du ma I For Coiiimod«raCfwnpu1*n 

Managing Editor 



Richard Evers 

Advertising Manager 

Kelly M. George 
4J 6 826 1662 

Art Director 

John Mostacci 

Program Listings In The Transactor 

AM programs listed in The Transactor will appear as Ibey would on your screen in Upper/Lower case 
mode. To clarify two potential character mix-ups. zeroes will appear as '0' and Ihe letter "o" will of course 
be in lower case. Secondly^ the lower case L (T) has a flat lop as opposed to the number 1 which has an 
angled top. 

Many programs will contain reverse video characters that represent cursor movements, colours, or 
function keys. These will also be shown exactly as they would a^jpear on your screen, but they're listed 
here for reference. 

Occasionally programs will contain lines that show consecutive spaces. Often the number of spaces you 
insert will not be critical to correct operation of the program. When it is, the required number of spaces 
will be shown. For example: 


flush right " - would be shown as - print" [spacelO]flush right" 

Contributing Writers 

Eric Armson 
Don Bell 
Dave Berezowski 
Daniel Biiii^amon 
Brad Bjorj^dahl 
Jim Butterfield 
Chuan Chee 
Domenic Defrancisco 
Bob Drake 
Jeff Coebel 
Melissa Gibbins 
Dave Gzik 
Fred Hambrecht 
Paul Higginboltom 
Dave Hook 
Mike fanning 
Howy l^arkins 
George Shirinian 
Darren J. Spruyt 
Brad Templet on 
Colin Thompson 
Vikash Verma 
Don White 
James White wood 
Chris Zamara 


Attic Typesetting Ltd, 

Cursor Characters For PET / CBIVl / VIC / 64 

Down - Q 

Right - 
Left - [Ul| 

RVS - B 


[>elete - Q 



Colour Characters For VIC / 64 

Black - 
White - 
Red - 
Cyan - [Cyn| 
Purple - (E*ur] 
Green - 
Blue - 
Yellow- [Y«]] 

Orange - 

Ll. Red - 

Grey 1 - 

Grey 2 - 
Lt. Green - 

Lt. Blue - 

Grey 3 - |Gr3| 

Function Keys For VIC / 64 






Printed in Canada bv 


MacLcan Hunter Printing 

The Transactor is published quarterly by Transactor Publishing Inc. II is in 
no way connected with Commodore Business Machines Ltd. or Commo- 
dore Incorporated, Commodore and Commodore product names (PET, 
CBM, VIC, (i4) are registered trademarks of Commodore Inc. 

Volume 5 Subscriptions: Canada $ 1 5 Cdn 

USA. S15US. 
AMottier Si8US. 

Second Class Mail 
Permit Pending 

Send all subscriptions to: The Transactor, Subscriptions Department, 500 
STeeles Avenue, Milton, Ontario. Canada, L!)T :JP7, 416 876 4741, From 
Toronto call 826 1662. Note: Subscriptions are handled at this address 

TheBest of The Transactor Volume 3: S17 Cdn., U.S,A $19 US., all other 
$21 US. Volume A back issues: $4.50 each. Volume 4, Issues 4, 5, & 6 no 
longer available. 

Quantity Orders: 


PO Box 352 

Port Cotiuitlam, B.C 


604 464 3396 

Access Computer Services 
630B Magnetic Drive 
Downsview, Ontario, M3J 2C4 
(416)736 4402 
Dealer Inquiries ONLY: 

1 800 268 1238 
Subscription related inquiries 
are handled ONLY at Milton HQ 

U,S.A. Distributor: Prairie News, 24(14 West Hirsch, Chicago, IL, 60622, 
(312)384 5350 

Want lo a product or service? Call or write for more information. 

Editorial contributions are always welcome and will appear In the issue 
immediately following receipt. Remuneration is $40 per printed page. 
Preferred media is 2031, 4040. 8050, or 8250 diskettes with WordPro, 
WordCrafI, Superscript, or SEQ text files. Program listings over 25 lines 
should be provided on disk or tape. Manuscripts should be typewritten, 
double spaced, with special characters or formats clearly marked. Photos of 
authors or equipment, and illustrations will be included with articles 
depending on quality. Diskettes, tapes and/or photos will be returned on 

All material accepted become.s the property of The Transactor. All material 
IS copyright by Transactor Publications Inc. Reproduction in any form 
without permission is in violation of applicable laws. Please re-confirm any 
permissions granted prior to this notice. Solicited material is accepted on an 
all rights basis only. Write to the subscriptions address above for a writers 

The opinions expressed in contributed articles are not necessarily those of 
The Transactor. Ahhough accuracy is a major objective, The Transactor 
cannot assume liability for errors in articles or programs. 

The Transactor 

Volume 5, Issue 1 

^r'omy ^/i& (Sc/ilar-'sy Q}e^ 

New Limitations 

Volume 5, issue 01 marks a new boundary crossed - the 90 
page barrier. This is our biggest issue yel - quite a change 
since our humble beginnings as a 2 page newsletter stapled 
at the top left corner. 

That was 1 978. Only a year before Commodore released the 
PET 2001. So, for all intents and purposes, the industry (hat 
we've come to know and love as the world of microcomput- 
ers is just over seven years old. Seven years. . . not very long 
as history standards go. The car, the airplane, and the 
telephone arc considered relatively new inventions. Yet 
they haven't really changed much considering they've been 
around for somewhat longer. Like the computer, these 
everyday items have changed life on Earth to the point that 
we would only notice them if they were taken away. 

But with one difference - aside from the more esoteric 
activities, the car, plane and phone service only one funda- 
mental requirement of life. So where does that leave the 
computer? Micro pragmatics change like the weather. Only 
seven years old and destined for a future of constant inner 
turmoil and endless Version^itis. The changes we Ve seen 
will pale by comparison with those no doubt in store. Tve 
heard some say stressfuUy. ''Where will it end? ^ Well, it's 
not gonna! Actually it's only beginning! 

But so what! What could be more perfect. Certainly it will 
never get boring. Just as we get to know the latest technol- 
ogy, a new one will arrive. . . with new commands to learn, 
new manuals to criticize, and new bugs to attend to. And it 
will continue to do so, faster each time. 

Reports claim that one out of every twenty homes own a 
microcomputer. The same reports say that by 1990. that 
ratio will be 10 in 20. Staggering, In just 6 years there will be 
10 times as many of us. You think it's overwhelming now- 
just think how the 10th person will feel. 

For those who wait, the effort will geometrically increase 
with each new generation. 

But that's assuming we follow the path beaten down by one 
manufacturer. Herein lies a trap that must be avoided if we 
are to maintain the edge. Check out the other manufacturers 
- the neophytes are. Granted you probably did loo just 
before you made that 'decision to buy', but don't turn off 
now. Keeping abreast of what's out there is just as important 
as knowing what's in there! Don^t be naive enough to think 
that just because you have mastered machine language on 
your Commodore 64 makes you a veteran and you can coast 
for a while- Sure, the next generation will advance along a 
pattern set by the predecessor. But the other brands will be 
advancing too. and before you know it you'll be the one with 
catching up to do. You don't have to know their memory 
maps inside out - just a grasp of the basic differences and 
their fundamental operation and applications will keep you 
in tune, AND gain you respect among your peers- 

The microcomputer world has become much more than just 
learning to program. No, there's much more to it than that. 
The desire to learn is probably the most important step, and 
if sticking with it is firmly in your plans you have a good 
head start. Keep it! 

There's nothing as constant as change. . . until next issue, 1 
remain. -, . :"-^- -^ / ^ ^ 


y ' 



^-y—^x ^dru 




KarlJ.H. Hildon 

Managing Editor, The Transactor 

We have an advantage now: experience. Most of us have 
seen o[ie system come and go. Even if you're stiti on your 
hrst machine, that experience alone will make the new 
machines easier to digest. Those entering the field 4 years 
from now will be faced with mega-features to assimilate. For 
us it will be a simple matter of learning the next step. And 
each time there is one, we acquire that much more disci- 
pline- the effort required to learn will become less and less. 

Ths Troniactor 

Volumo 5, Issue 01 

News BRK 

Subscribers U<S.A. 

Some of you thai have sent in the postage paid subscription cards 
to our LLS. office may have had the cards returned. Our apologies 
for ifiis error. Please re-send the card as is. This problem has since 
been cleared up and it won't be returned again. 

Commodore News 

Jack Tremiel Resigns 

President and Founder of Commodore International, Jack Tremiel, 
has resigned after taking his company to the $1 billion dollar mark 
in sales. Tremiel started Commodore 25 years ago in Toronto, 
Ontario as a typewriter repair shop on Yonge Street. Since 1958. 
Commodore has seen many products come and go - typewriters, 
radios, LED & LCD watches and calculators, office furniture - and 
Tremiel has shown a uncanny sense for knowing when to get into 
a market AND gel out. 

Reasons for Jacks carreer decision vary from personal to profes- 
sional conflict. Reportedly, he will act as a consultant for Commo- 
dore. Whatever Jacks' hiture holds, we at The Transactor wish him 
well and thank him for being a true contributor to the advent of the 

Commodore Introduces Productivity Software 
For Commodore 264 and Commodore 64 

Commodore has introduced several productivity software pack- 
ages for the Commodore 264 and Commodore 64 home com- 

^This is the most powerful assortment of productivity software 
ever introduced for a personal computer/' said Sig Hartmann, 
president of Commodore Software. ''All of these packages will be 
available by late spring on cartridge or disk for the Commodore 64 

and Commodore 264, Several of these packages will be available 
as BUILT-IN software options for the Commodore 264." 

The new products include: 

• MAGIC DESK II, a uscr-frjendly program with integrated text 
editor, spreadsheet, file manai^er, and calculator for beginning 
computer users. Special "help screens" are built-in. and instead of 
commands, MAGIC DESK uses PICTURES of commonly used 

• Commodore S-PLUS-l, the first integrated software for a home 
computer, it includes a word processor, file manager, and spread- 
sheet. . . PLUS. , . graphics! Commodore 3-PLUS-l uses window- 
ing to allow the use of the word processor and spreadsheet 
simultaneously on the screen. 

• SUPERSCRIPT 264, a multi-function professional word proces- 
sor designed for both beginner and expert users. It includes text 
editing, number calculations, mail list functions, and a cut and 
paste feature that adds easy on-screen text editing. 

• EASYCALC 64 and EASYCALC 264, full-featured spreadsheet 
programs with color selection and graphics, EASYCALC 64, for the 
Commodore 64, and EASYCALC 264, for the Commodore 264, are 
both sold on cartridge, providing more working space within the 
computer than comparable disk-based spreadsheets. 

• Commodore B/GRAPH, an easy-to-use business graphics and 
statistics package for busine.sspeople and students. B/GRAPH 
computes and converts financial and statistics results into colorful 
3-dimensionai charts, graphs, pie charts, histograms, and other 

• FINANCIAL ADVISOR, a sophisticated financial aid computes 
loan, mortgage, and investment formulas. It is available on easy- 
-to-use plug-in cartridges. 

The Transactor 

Volume 4, Issue 06 

• TELIGRAPHICS, videolext and graphics software for use with 
Commodore telecommunications modems, (t allows transmission 
of pictures, text, and business graphics over the telephone and 
between computers. TELIGRAPHIC al?^o allows users to upload 
and download data through telecomputing services like Compu- 
Serve. Compatible with Canadian Telidon videotext standard, 

"As with all of our products, we will market our new productivity 
software at consumer prices/" Harlmann said. ''We are pleased that 
Commodore is able to take the leadership position in raising the 
quality of software available to personal computer owners.'^ For 
more information contact Sig Hartmann: 

Commodore Computer Systems Division 
1200 Wilson Drive 
West Chester. PA 19380 

Commodore Introduces 100 Applications 
Templates for The fVlanager 

Commodore Software today introduced a series of application 
template products for its Commodore 64 MANAGER 64 database 
system. The templates include hve to ten specific applications 
provided on each disk, which, when used in conjunction with the 
MANAGER, allow the user to easily computerize home budgets, 
index recipes, keep track of sports statistics, track business ac- 
counts, and more. Each application comes with complete docu- 
mentation and built-in help screens. 

*The MANAGER is a powerful, sophisticated database program 
that lets the user define his own a|)plications, " said Paul Goheen, 
director of applications software. 'Tour applications come with the 
MANAGER: 'Holiday Planner/Mailing List/ Task Manager/ 'Portfo- 
lio Manager/ and Home Checkbook/ These applications make it 
easy for the first-time computer user to immediately take advan- 
tage of the capabilities of computerized record keeping." 

The readv-IO'Use templates include the HOME MANAGER, the 
MANAGER. One hundred different applications are planned. 

Typical of the applications templates is the HOME MANAGER, 
which provides five different applications: 

• Home Inventory— Organized household effects for insurance 
and business purposes. 

• Home Budget— Tracks where your money goes each month. It 
comes with 15 pre-dehned budget categories set up for each 
month with room for 10 additional categories of your own choos- 
ing. A bar graph comparison of budgeted versus actual expenses is 
also provided, 

• Birthday/Mailing List— An electronic address book that remem- 
bers what birthday gifts have been given for the past hve years and 
provides a list in calendar date order of birthdays, including actual 

• Garden Records— Inventories plants with date of planting and 
retains up-to-date information on soil mixture, fertilizer used, and 
weekly crop yields, 

• File Card- A computer index card that stores notes, recipes, 
things to remember, names and addresses, etc. Each card has an 
optional title entry that makes searching for a specific card easier. 

Capabilities of the MANAGER include data entry screens, full 
search and sort capability, arithmetic calculations and a powerful 
report generator. For more information contact Paul Goheen at the 
number or address above. 

Commodore Successful With 
Outside Software Development 

Commodore Business Machines today introduced a variety of new 
third party programs which it feels are potential sales hits because 
of their creativity and originality. Among them are International 
Soccer, Jack Attack, Micro Illustrator. Micro Cookbook, 3 Plus I, 
and theMilliken Edufun! series. These are all products of Commo- 
dore's ongoing strong relationship with third party software devel- 

In the past, a number of the best selling Commodore software 
products have been produced by outside developers. These in- 
clude Easyscfipt 64, The MANAGER, LOGO, the ZORK adventure 
series, and the BALLY/MIDWAY game series. 

Sig Hartmann, president of Commodore Software states, "One of 
the major keys to our software success is the independent software 
developer. We are now working with over 35 of the most creahve 
software developers in the industry." Of the over 200 Commodore 
branded software products in distribution, over one-half were 
produced by outside developers. Additionally, over 100 new soft- 
ware products are currently being developed for Commodore by 
outside software firms such as Data 20, Digital Research, Infocom, 
InfoDesigns, Island Graphics, MicroPro, Midwest Software. Milli- 
ken, andTri Micro. 

"Commodore believes that software acquisition is a two-way 
street," continues Harlmann. ''Independent developers want us to 
market their software through our worldwide distribution network 
and we want to make these superior products available to the 
consumer for the most affordable price. In addition, by tapping the 
resources of the independent software industry, Commodore is 
able to obtain the most current, state-of-the-art products availa- 
ble." For more information contact; Sig Hartmann. 215-43I-9IU0 

Commodore Announces New 
Donation Programs for Schools 

Commodore has plans for several new donation, grant and infor- 
mation programs for schools and state departments of education, 
including two special equipment donation programs totaling over 

One such program entitled "CREWS" (Commodore Resources in 
Education with States) targets the state departments of education. 
Selection of states is determined by the leadership role taken in 
assisting local school districts with training, software selection and 
planning for uses of microcomputers in education. Four states 
have received equipment donations thus far and many others 
have been contacted. Slates receiving equipment include Califor- 
nia. New York, Pennsylvania and Texas. 

A second donation program offers matching grants to individual 
schools developing innovative computer education programs in 
teacher training, curriculum development using applications soft- 
ware, or community education. Any equipment awarded must be 
''matched-in-kind" by the institution receiving the donation. 
Interested individuals or schools should write to Commodore 
Business Machines, Education Department, 1200 Wilson Drive, 

The Transoctor 

Volume 4, Issue 06 

West Chester, PA 19380 for tnformalion. Submission deadline for 
requests is March 15, 1984. 

Commodore has also developed Education Resource Centers at 
"Commodore-using" public and private schools and colleges 
linked with Commodore through a telecommunications network. 
Each Resource Center agrees to share software, curriculum and 
teaching strategy information with each other and the communi- 
ties they serve. In return, Commodore provides each with a free 
VICMODEM and subscription to CompuServe as well as updated 
information, including hardware and software products, educa- 
tional support materials, school computer events, resources for 
decision making, and technical assistance. According to Dr. David 
Rosenwald, Commodore's director of educational sales. "The pro- 
gram is growing rapidly and response from schools is very enthusi- 
astic," For more info, contact D, Rosenwald at the Commodore 
Pennsylvania office. 

Commodore & CompuServe Sign 
Agreement Offering Vidtex 

Commodore has signed an agreement for CompuServe's VIDTEX 
terminal emulator, a telecommunications package that allows 
users to transfer programs from CompuServe's large library to their 
own systems for use or disk storage. The agreement allows Com- 
modore to sell, market and distribute VIDTEX worldwide. In 
addition, CompuServe will also market the package direct and 
through its dealer network. 

In making the announcement, Paul Goheen, director of business 
software development said, "This is one of the most user-friendly 
terminal programs ever developed. It is designed to help people 
who have never used a computer before. By connecting their 
computer to a telephone via a modem, they can have access to 
services that provide technical information, free soflware, an 
^electronic magazine/ and 'conversation' between users," 

The VIDTEX package uses CompuServe's exclusive "B" Protocol, 
which allows 100% error detection and correction of files being 
transmitted to or from CompuServe, ensuring that the program 
will work when transferred. VIDTEX even notifies the user if an 
incompatible program written for another computer is trying to be 
downloaded. Other features include: 

• A complete 32K RAM buffer which can capture data from a host 
system for immediate use or for disk storage for later use. 

• Printer support— using the RAM buffer, users can capture data at 
120 characters per second for print-out later on a slower prlnler. 

• 10 programmable function keys which can be loaded with such 
things as user ID for the service or any series of commands. This 
gives the user access to a series of commands by pressing one key- 
By saving these definitions on disk, the user may load and use 
many different function key configurations again and again. 

• Colour graphics and cursor positioning. 

VIDTEX is a disk-based program designed for Commodore com- 
puters that use the Commodore VICMODEM Model 1600 or the 
AUTOMODEM Model 1650, These include the C-64, CBM 8£)32 
and the new Commodore generation of home and business com- 
puters, !heC-264. For more information contact MikeTomczyk at 
Commodore HQ in PA. 

Commodore Introduces Speech Module For The 64 

the user port of the Commodore 64. It contains an additional port 
into which other ^'talking'' and ''non-talking" cartridges can be 

The Commodore Speech Module contains a built-in vocabulary of 
235 words in a pleasant female voice. The voice speed can be user 
defined to stow, normal, or fast. The words can be programmed 
directly from Basic and/or assembler. The user can program 
music, graphics, and speech simultaneously. The Speech Module 
supports a separate audio out so that the user may connect the 
speecfi output directly to a hi-fi system, a television, or a colour 
monitor. More words and different voices (male, cartoon charac- 
ters, etc.) will soon be available on disk and cartridge. 

Future educational applications on disk and/or cartridge include 
the alphabet, counting, spelling, and animals. Higher level appli- 
cations will include interactive foreign language modules, higher 
mathematics, and science. Programs will be available from Com- 
modore and third parly producers. 

Because the Commodore Speech Module can be made to produce 
any voice and a wide range of sound effects, game cartridges will 
take on an even more realistic effect. Two released games that 
currently work with the Speech Module are WIZARD OF WOR and 
GORF, More games are being prepared for release soon. The 
Speech Module can support game cartridges of up to 128K bytes. 

Commodore's Speech Modulo has a suggested retail price of 
$59,95 US- and can also plug directly into Commodore's new 
portable computer, the SX-'64, making it the only "talking" porta- 
ble on the market. For more information contact Myrddin Jones at 
Commodore HQ. 

Commodore Introduces New Line Of 
Advanced Entertainment Programs 

"Video games have changed dramatically since they were first 
introduced. Todays's game planers think in terms of 'computer 
games/ a blend of three-dimensional cartoon animation wilh 
sophisticated challenges only a computer can achieve." 

With those words, Commodore Software President Sig Hartmann 
introduced INTERNATIONAL SOCCRR, the first in a series of 
"Gold Medallion^' games. Continuing, he added. "This designation 
is reserved for a special category of elite new game and adventure 
products that have advanced animated graphics as well as play 
action that uses thought and strategy." 

INTERNATIONAL SOCCER offers three-dimensional animation, 
realistic perspechves and authentic soccer play action for one or 
two players. Developed for Commodore's line of home computers, 
INTERNATIONAL SOCCER has a suggested retail price of $3^.95, 
with initial deliveries expected in January 1984. 

Future 'Gold Medallion" releases are to include a professional- 
-level basketball game as well as "intellectual games." Other 
entertainment programs Introduced include; 

• VIDUZZLES— a series of video puzzles for childrcn. 

• JACK ATTACK— an animated strategy game with many varia- 
tions and levels of play. 

• SOLAR FOX— one of the best of the Bally Midway adventure 


Commodore has developed Irue-to-life speech for the Commo- All three of these programs will be available for inihal deliveries by 
dore 64 series of computers. The speech module plugs directly into spring. For more info contact John Malhias at CBM HQ, 

The Tron factor 


Volume 4, Usue 06 


Microcompudng Periodicals Directory 

Closing The Gap 

A national conference to examine the impact ot microcomputer 
technology for the handicapped will be held in Minneapolis, MN 
September 13-16. 1984. 

Titled "Computer Technology For The Handicapped/' the confer- 
ence will be held at the Raddision South Hotel. Sponsors are 
CLOSING THE GAP (an international newspaper covering micro- 
computer applications for the handicapped) and TAM (Technology 
and Media, forming as a division of the Council For Exceptional 
Children) in cooperation with Dr. Gillbert SchiEfman, Department 
of Education, Johns Hopkins University and Dr. William Bu- 
chanan, Applied Physics Laboritory, Johns Hopkins University. 

This conference and its program will bring together special educa- 
tion, rehabilitahon and medical professionals from around the 
world to share advances made by technology to aid the handi- 
capped. In addition, this offering is designed to provide informa- 
tion to parents of handicapped children and disabled individuals, 
demonstrating the opportunities, advances and support this tech- 
nology can bring to this population. 

Over 80 presentations and three, three-hour workshops are avail- 
able to all participants. In addition there are six pre-conference 
workshops featuring beginner to advanced training in the use of 
microcomputers for the handicapped. 

Total cost of the conference is $ 1 50 if registration is received before 
September 1st or $175 for registration after that date. TAM and 
Group discounts are also available. Additional information may be 
obtained from: 

Paula Barnharl, Conference Manager 


PO Box 68, Henderson, MN, 56044 

(612) 665-6573 or Metro Mpls./St. Paul - 341-8299. 


CBBS Directory 

The National CBBS Directory is now available to all computer 
users who communicate over the telephone. This directory con- 
tains over 1000 computer bulletin board telephone numbers 
which are conveniently organized in numeric sequence. 

The directory also contains a unique key field which identifies 
relevant information such as the BBS type, its baud rale, operating 
hours, and special comments specific to each BBS. 

Many of the bulletin boards contain excellent programs which you 
can download into your system at no charge to you. Provides you 
with a comprehensive list of national BBS telephone numbers, 
(SYSOPS: send info for next printing of the Directory) The directory 
is promptly shipped to you by sending only $2.00 postpaid to: 

Thomas Wnorowski 
3352 Chelsea Circle 
Ann Arbor, Ml 48104 

Microcomputing Periodicals: An Annotated Directory, the original 
source of information on microcomputer magazines, is about to 
release its 10th revised and expanded edition. This unique direc- 
tory to over 800 magazines, newsletters and newspapers related to 
the use of microcomputers has been called ". . .very impressive, 
one of the most meticulous bibliographies i have ever seen, and 
certainly on a subject of considerable current interest^' (Peter 
Gellatly, Serials Librarian). 

Each entry includes title, address, frequency of issue, the year the 
periodical began publishing, its cost, plus a brief annotation 
describing the periodical and giving an idea of its scope and 
content. Also included are a list of indexing and abstracting 
services to these publications, an appendix of periodicals which 
have changed their name or ceased publication, and indexes by 
subject and by country of origin. 

This book will be invaluable to consultants, researchers, librarians 
and anyone else who needs to locate up-to-date sources of 
information on microcomputers and their applications, 

in addition to specific brands of equipment and software and a 
variety of programming languages, subjects that have publications 
devoted to them include: accounting, agriculture, business, dentis- 
try, education, engineering, finance, games, genealogy, graphics, 
the handicapped, law, libraries, marketing, medicine, networks, 
pharmacy, political science, psychiatry, publishing, religion, 
speech synthesis, word processing, and many, many others. 

The cost is $19.95, including postage (add $2.00 outside N. Amer- 

Microcomputing Periodicals 
53 Fraserwood Ave. *2 
Toronto, Canada 

Commodore 64 User's Encyclopedia Now Being Shipped 

The Book Company (a division of Arrays, Inc.), a leading publisher 
of home and business reference books for microcomputer users, 
announced the shipment of their new publication. "The Commo- 
dore 64 User's Encyclopedia/' 

"With a suggested retail of $14,95, The Commodore 64 User's 
Encyclopedia' is an invaluable resource for any Commodore 64 
owner. The information on consumer products alone is worth 
many times the price of purchase. Moreover, as a convenient 
reference for all the problems and decisions involved in personal 
computing, it will save buyers hundreds of hours of lime that 
would otherwise be wasted looking elsewhere for necessary infor- 
mation/' commented Hank Schienberg, executive vice president 
of Arrays. Inc. 

''The Commodore 64 User's Encyclopedia^' addresses the begin- 
ning to intermediate user of this best-selling home computer. It is 
not only especially helpful to owners using the Commodore as a 
personal or business computer, but it is also very helpful to those 
making a transition from playing games to exploring other possi- 
bilities in personal computing. 

'The Commodore 64 Users Encyclopedia'' includes all the infor- 
mation a user needs to successfully program in Assembly language 
and BASIC: sample program lines and clear examples of correct 

Th« Transactor 

Volume 4, Usue 06 

enlry formats; a full description of all operating system commands 
and functions, including error messages and appropriate re- 
sponses; explanations of peripheral devices, their functions and 
operation; definitive information about all commercially available 
software and hardware enhancements for the Commodore 64, 
including the most thorough, up-to-date vendors list available; 
and complete information about further resources for owners of 
the Commodore 64: books, magazines, user's groups, and other 
sources of support and education. 

The Book Company's user encyclopedia can be purchased from 
leading bookstores and computer stores across the country. For 
additional information, contact: 

Linda Fcidman 

The Book Company 

1 1223 South Hindry Avenue. 

Los Angeles, CA 


Canadian Directory of Software HOTLINE Service 

Searching for Software? We can help you find it! 

Our database has over 2500 Canadian, American and Europian 
packages listed. This large selection of packages gives you the 
chance to find the package best suited to your needs. The database 
is updated daily with newly evaluated packages. 

Simply specify: 

1. The Application, 

2. The Industry. . .. 

3. The Hardware. . 

,eg. accounting 
,eg, manufacturing 
. .eg- micro 

And for just $35, we will search our database for all the packages 
htting your set parameters, and send you all the reports on file by 
mail as soon as possible. Call or write: 

Canadian Directory of Software 
Maclean Hunter Bldg. 
777 Bay Street 
Toronto, Ontario 
M5WIA7 (416)5965986 


Personal Finance Planning and Analysis 

Xana Data Systems of Calgary, Alberta has announced the release 
oi a revolutionary new program, the "Personal Finance Fore- 
caster," Designed for home budget planning and administration, 
the program combines an analysis of the individual spending 
patterns of the user, along with his or her current financial 
situation, to project a budget twelve to thirty-six months into the 
future. !t permits detailed "what if* analysis to aid in planning 
future spending. Available for the Commodore 64 and disk drive, 
the package includes a master diskette, a working copy diskette, a 
personal security key and a comprehensive users manual. The 
program retails for $99.95 CDN and $79.95 US. For more informa- 
tion contact: 

Xana Data Systems 
3427- I2th Street N.E. 
Calgary, Alberta 
T2E 6S6 

(403) 276-6834 Canada 
(213) 410-9884 United States 

Data*Max For The Commodore 64 

DATA*MAX is a flexible, easy lo use database system which can 
balance your checkbook, keep a household budget, record collec- 
tions, and take care of almost any home filing chore. The software 
and extensive user guide are written especially for the newcomer 
to computers. All options are screen prompted and require a single 
keystroke loexecute, eliminating the need for constant referrals to 
the manual- 

DATA*MAXcan maintain an unlimited number of 10,000 charac- 
ter files containing up to 200 eight field records each. A sub-file 
option allows the user to split a full file into two or more smaller 
ones, enabling expansion beyond the 200 record limit. A special 
"Escape Key" allows any program option lo be aborted without 
loss or change of data. Use of color displays and full sound 
prompting give instant visual and aural response to user input and 
error conditions- 
Records can be searched and sorted by ANY field or combination 
of fields. Special "number crunching" features allow sorting in 
numerical order and provide a summary of held totals and aver- 
ages, DATA*MAX can also create special sorted files which can be 
read by word processors for easy generation of form letters, labels, 
invoices, etc. 

Disk commands such as "Directory" and "Format disk" are availa- 
ble without leaving the program. Commodore and non-Commo- 
dore interfaces and printers are supported. Printed reports feature 
pre-set format and automatic paging. DATA*MAX also allows any 
report 5creen(s) or a disk directory lo be copied lo the printer at the 
touch of a key. Available only for the Commodore 64 on diskette 
for $29.95 from: 

308 1/2 Green St. 
Yankton, SO 
57078 605 665 2833. 

PractiCalc 64 

PractiCalc 64 is a complete computer spreadsheet. Why? Because 
it combines the sophistication of a large business computer with 
the ease and affordability of a home computer! 

PractiCalc 64 is fully equipped with 22 mathematical functions. It 
will perform all BASIC operations ( + , -, x, ./,. exponentiation, 
logarithm, integer, etc) as well as trigonometric functions like sine, 
cosine, and tangent. Row/column functions which work on a 
range of numbers are also included; maximum, minimum, count, 
average, etc. PractiCalc allows all of these functions to be com- 
bined in formulas for easy calculation. 

With the maximum number of rows 250 and columns 100, 
PractiCalc 64 will handle spreadsheets of up to 2000 cells. Moving 
around large spreadsheets is simplified by a "GO TO" option 
which allows the user to select a destination ceil, 

PractiCalc 64 will also sort information t)oth numerically and 
alphabetically. To hnd an entry you placed at the far end of the 
spreadsheet, PractiCalc 64 has a SEARCH function which will 
automatically seek formulas, numbers, words, or variations of 
words (with its wild card option). And finally, PractiCalc 64 has the 

The Tron sector 


Volume 4, 1 Slug 06 

ability to represent numbers in bar graphs to see how they 
compare. The bar graphs, available in high and low resolution, are 
easily printed to a compatible printer for a 'hard copy' of your 

What was once only available on mainframes is now possible on 
your Commodore 64 with the complete spreadsheet - PractiCalc 

Access Computer Services 
6;50B Magnetic Drive 
Downsview, Oni. 
M3J2C4 4167364402 

ExpandaFox 80 For The C64 

(for the Quick Brown Fox word processor Commodore 64 - disk 

ExpandaFox 80 adds 80 column capability (through software) to 
your Quick Brown Fox word processor. You now have Ihe ability 
to display 80 characters across your screen (monitor or television) 
without the purchase of any additional hardware. 

ExpandaFox 80 allows you to display your text as it will appear 
when printed, completely formated. 

Quick Brown Fox 
536 Broadway 
New York, New York 
10012 212 925 8290 


(a mailing list & mail merge program for the Commodore 64 - disk 

QuickMail is an efficient, fast and simple to use mailing list/merge 
program for the Commodore 64 computer, compatible with the 
Quick Brown Fox friendly word processor. Il's an easy way to keep 
mailing lists tidy and up lo date. QuickMail can even be used alone 
to generate mailing labels. 

QuckMail is so powerful that it integrates names and addresses 
with the Boilerplate feature of Quick Brown Fox word processor lo 
produce letter perfect, personalized form letters. It even provides a 
salutation field. And. QuickMail can add, edit and delete any 

QuickMail will also generate 600 names and addresses per file 
with provisions for four open fields (additional information of your 
choice) for identification and coding. It can sort alpha/numerically 
{by name or zip code), and search for duplicate names and 


(a smart telecommunications program for the Commodore 64 - 
disk version) 

QuickLink is a smart terminal stand alone telecommunications 
program. QuickLink works with the Quick Brown Fox word 
processing program and your Commodore 64 to access and edit 
information via telecommunications services such as The Source, 
CompuServe, and Dow Jones Services. This means with Quick- 
Link you have a powerful, smart, terminal program that will put 
today's most exciting databases at your fingertips. Wilh it, you 
have the power to acquire information over the telephone, create 

files which you can edit, and transmit your own electronic mes- 
sages to other micros using other word processing programs. 

• Downloads and uploads files in sequential, program or new IMG 

• Easy to use, totally disk-based system with a menu driven 

• Rasily customized lo work with any video text service or private 
bulletin board 

• Works with all seria! bus printers and properly interfaced 
Centronics and IEEE printers 

• Prints or extracts segments of files to create new file ON LINE of 

• Its memor>' buffer can be set to automatically dump download 
files to disk 

• Can be used with both Commodore's 1600 VICMODEM or 1650 
AUTOMODEM, QuickLink can repeatedly dial a list of numbers if 
used with 1650 AUTOMODEM. 

• interfaces with the 80 column Video Pak carlridge from Dala 20 

• Accesses C64 DOS WEDGE commands without leaving the 

• Has four user defined keys that allow ihe user lo create keys for 
automatically loading user-iD and passwords 

• Built in timer and alarm 

Quick Fix 

(a Super Debugger for the Commodore 64, Atari 400 and 800, and 
Apple and Apple He - disk version only) 

Get the bugs out the first time. With QuickFix you can monitor the 
effects of your assembly language programming with ease and 
make sure your compuler utilizes your instructions. 

Super- Deb ugger 

If you write or are learning lo write in 6502 Assembly Language, 
you may find that debugging your programs can be a tedious, 
difhcult, and time-consuming operation. Even a good machine- 
-language monitor with single-stepping capabilities cannot give 
you a way to observe exactly how each step of your program effects 
every register and memory location that your program uses, 

SuperDebugger is an innovative single-stepping program which 
allows you to specify which areas of memory your program 
utilizes. Between each instruclion of your program that you exe- 
cute, the debugger will display the contents of all the registers of 
the 6502 as well as Ihe contents of the memory locations that your 
program is using. In this way you can easily keep track of the stale 
of all the important memories belween each instruction. 

The commands supplied by Super-Debugger are the following: 

CR -- Execute the nexl instruction 

G n - Set the Program Counter to location n 

P n - Same as G 

An ' Sel the Accumulator lo n 

X n - Set the X Register lo n 

Y n - Set the Y Register to n 

J - Single-step the next subroutine call 

B - Exit debugger 

M a, b - Display the block of memory b bytes long starting 

wilh loc. 

D - Stop displaying the last block of memory entered 

E - Erase all the blocks of memory indicated so far 

S a;x,y,.. - Store the value x, y,. . . in the memories starting with 

location a 

Th» TrcKiMicter 


Voiumtt 4, ls£UO 06 

Quick BASIC Aid 

(a BASIC prot^rammjng tool for the Commodore 64 users. So if you 
wani to learn BASIC, or if you wan! lo improve your BASIC 
programming skills. Quick BASIC Aid is a program designed lo 
really help you. 

Quick BASIC Aid offers advanced programming aids aot found in 
Commodore, Microsoft 4.0 BASIC. These aids are designed by 
programmers to simplify advanced BASIC programming. 

Ycni will never have to write another utility program again! Quick 
BASIC Aid is menu driven, and supports serial bus and IBEE 

Although Quick BASIC Aid is an extensive 3GK program, it does 
not use up any of the user's memory for programming since it 
works with the user's program from the disk. Therefore, the user's 
program can be any .size since it is never in the computer's 

memory at the same time. 

The Utilities: 

• RENUMBER - renumber all, or specify line parameters 

• EXTRACT- Create a new subroutine, or program from any BASIC 
program and merges it with another program. Other features 

• CROSS REEERENCE - produce a complete cross reference of all 
variables and line numbers. 

Contact Quick Brown Fox for more details, 
C64 Master Composer 

Master Composer is the perfect utility for programming music on 
the Commodore 64. It is fun, easy to use and very powerful. Master 
Composer takes full advantage of the sound synthesizer to produce 
all types of music from simple melodies to intricate compositions. 
With Master Composer both the beginner and the accomplished 
musician will have the power of the Commodore 64 synthesizer at 
their fini^er tips. You can compose your own musical scores, 
experiment with different arrangements, and instruments, pry- 
gram your own accompaniment, or just type in your favorite sheet 

Music files are easily added to your basic or M/b proi^ram and the 
interrupt driven song plays while your program runs. You may 
relocate and link files and selectively play different parts of your 

925 East 900 South 
Sales Lake City, Utah 
84105 801 532 1134 


World War 1 Ace" aerial battle game. 


Flight Simulator K simulates the instruments and flight characteris- 
tics of a Piper PA-28-181 Archer 11, a single engine, 148 mph, 
non-retractable gear aircraft equipped with a good set of avionics. 
Extensive flight controls (accessible using either keyboard or 
joystick) and instrumentationappropriale to visual and instrument 
flight are included. This aircraft was chosen because it offers good 
performance yet is simple and easy to fly. 

3D Oul-the-Window Display 

High speed color-filled 3D graphics (2 to 6 frames per second) are 
used to provide a spectacular view of the outside world. Ground 
terrain including mountains and water, runways, prominent fea- 
tures, and the horizon make even simple scenic flights a beautiful 

Visual effects are ver>' similar to those encountered in real flying. 
Going through clouds causes the view to become completely 
white. On clear days the sky is biue. Cloudy days result in a grey 
sky unless you break through the cloud layer to blue sky. 


Flight Simulator I! lets you practice takeoffs and landings, in-flight 
maneuvers, even complicated aerobatics over realistic scenery. 
The program features over 80 airports in four scenery area; New 
York, Chicago, Seattle, and Los Angeles, with additional scenery 
areas available separately. The potential flying environment (ten- 
-thousand by ten-thousand miles square) encompasses the entire 
continental United States, with a resolution finer than 2.5 inches. 


Realistic flight instruments and sophisticated avionics (radios) are 
provided. Ground navigation facilities and aeronautical charts 
allow yciu to learn cross-county flying techniques as well as local 
arrival and departure procedures. Avionics include two VOR 
receivers (the most commonly-used navigation radios), DME (dis- 
tance measuring equipment), ADF (automatic direction finder), 
and complete [IS (instrument landing systems) receivers. 

Environmental Factors 

Flight Simulator II simulates quite a few of the external environ- 
mental conditions that affect flying the most. Season, lime of day 
(day, dusk, or night), cloud layers, winds, and turbulence are all 


Two separate manuals are included with Flight Simulator It to help 
you get the most out of the simulation. The 88 page Pilot's 
Operating Handbook and 96 page Flight Manual explains aircraft 
and flight instrumentation controls, editor use. and program fea- 

Flight Simulalor II For The C64 


Let Flight Simulator II put you at the controls of a modern 
single-engine aircraft with full flight instrumentation and color- 
fully realistic panoramic view. Sophisticated programming lech- 
niques, combined with documentation that's fun as well as 
informative, now make the once-expensive American dream of 
flying a reality for anyone with an appropriate home computer. 
Flight Simulator il will train you in everything from basic aircraft 
control through complex aerobatic flight maneuvers. And when 
you think your're ready, you can test your flying skills with the 

The Flight Physics and Aircraft Control manual was developed 
specihcally for users with no previous aviation experience. The 
manual begins with the theory and physics of aircraft flight. Eight 
beginning flight les.sons then train the user in different aspects of 
aircraft control plus practical applications of the sophisticated 
avionics. Finally, a section on aerobatics teaches you how to 
perform loops, spins, rolls, and other fun aerial maneuvers. 

World War I Ace 

The program also features a "World War I Ace" aerial battle game 
that lets you test your flying skills against six deadly enemy fighter 

Th« Transactor 


Valvme 4, Issue 06 

planes. Your mission is to bomb the enemy fuel depots and 
factories- Six computer-controlled fighters assigned to protect tfie 
enemy installations will attempt to engage' you in dog-fights wlien 
you enter hostile territory. An attack radar screen, machine gun, 
and five bombs are provided to help you accomplish your mission. 

Flight Simulator II is available on disk for the Apple 11. Atari, and 
Commodore 64 computers. A (limited-feature) cassette version 
may also be available for your system; please call for further 

If your dealer doesn't carry Flight Simulator II for your computer 
system, you may have him order it or you may order directly from 
SubLOGlC. For direct orders plase specify your system and media 
requirements, enclose $49,95 plus $1.90 for shipping, and specify 
whether you want UPS or first class mail delivery. Visa, Master- 
Card, American Express, and Diners Club charges accepted. 

SubLOGlC Corporation 
713 Edgebrook Drive 
Champaign, IL 61820 
(217)359-8482 Telex 206995 

3-D Space Adventure 

STAR BATTLE, a realistic space adventure to save Earth, is a new 
strategy game for Commodore 64 users. 

Seated in the command center of the Starship Columbia as its 
captain, the player attempts to save Earth from the infamous 
Scyons. The mission lakes place in a realistic 3-dimensional 
galaxy with 64 quadrants. The starship is equipped with warp and 
hyper-light driver, phasers, photon torpedoes, an advanced 
tracking/viewing system and OBNAC 3000, the most sophisti- 
cated on-board computer in the Star Fleet, 

OBNAC stands fur Objective Based Navigation and AUack Com- 
puter. It helps track down and destroy enemy ships. A keyboard 
overlay is included to transform the computer into the OBNAC 
control console, 

A player must use a shield energy to protect the Columbia from 
Scyon Battle Cruisers because its capabilities are reduced each 
time it is hit by enemy fire. The Columbia captain can return to a 
Starhase for repairs if the ship is damaged. Can the captain stop the 
enemy ships, or will the Scyons plunder Earth and reduce the 
Columbia to Ion dust? 

STAR BATTLE is software of substance. It is a strategy game with 
3-D graphics, with ten skill levels that will challenge players from 
6 to 18 and beyond. 

STAR BATTLE is one of TIMEWORKS strategy games, including 
the very popular ROBBERS OF THE LOST TOMB. Each of the 
Entertainment games has a suggested retail price of $34.95, Look 
for these programs at your local computer store, or for dealer 
information, conlact: 

Micro Marketing Canada 
169 inglewood Drive 
Toronto, Ont. 


COMAL Users Group (USA) has announced the immediate avaiL 
ability of the language for the Commodore 64 designed to replace 

BASIC. COMAL includes 40 graphics statements and commands, 
1 1 sprite statemerfcts, and turtle graphics. It includes a RUN-TIME 
COMPILER which explains why it is so much faster Ihan BASIC. 
String searches are actually over 79 times faster, and typical 
program execution should be about 6 times faster. 

It is much easier to program in COMAL since it includes virtually 
all of the BASIC keywords, plus to program structures popularized 
by Pascal. When COMAL lists a program, these structures are 
automatically indented. Variable names can be up to 16 characters 
long, all characters significant. Procedures and functions are 
named and can be multi-line. Programming errors are caught as 
you enter the line, with understandable error messages, and the 
cursor placed on the line at the point of error. The error message is 
removed from the screen after you correct Ihe error, and the 
previous screen line is replaced (non-destructive error messages). 

COMAL allows you to store program segments on disk. They can 
be merged into another program later. Auto line numbering and 
line renumbering is standard with COMAL, as is End Of Data and 
End Of File detection. The function keys are used to easily switch 
from graphics screen to text screen and back. A simple statement 
can be used to disable/enable the STOP key. And COMAL can 
read data files created by BASIC, no conversion needed. 

The total cost for this new, well designed, powerful language is 
only $19,95, less than you might expect to pay just for a few 
"patches" to BASIC. Send a SASE for more information or order the 
COMAL System Disk from the: 

COMAL Users Group 
5501 Groveland Terrace 
Madison, WI 53716 

C64 Physics Lab 

(a physics tutorial game for the Commodore 64 - disk version) 

If you are a physics student or just curious about how things work. 
Physics Lab is a program which was designed with you in mind. A 
joystick and a desire to learn is all that's required. 

This program provides a way to gain an intuitive understanding of 
elementary physics. Its features allow it to be used as a simple 
game or as a powerful self teaching aid- 
Physics Lab provides a simulated real world that includes: 

• masses 

• uniform gravity 

• inclined planes 

• springs 


inverse-square gravity 

Using a joystick to both make selections and position objects, you 
can. . . 

• put together complicated systems out of elementary Items 

• observe and record the movement of objects in the system you 

• observe, through the use of advance graphics, the magnitude 
and direction of the forces that objects exert on each other as they 

• use of joystick to exert external force on masses in the system 

• display and superimpose graphs of how the position and velocity 
of masses vary with time in different experiments 

• play a game in which you must build a Rube Goldberg-type 
mousetrap using the various items of the simulated world and try 

Th« TrofiMictor 


Volumq 4, ImiQ 06 

to fine-lune Us operation with a minimum number of adjustments 
• learn basic mechanics by observing the way forces in the 
simulated world balance each other, accelerate masses, act during 
collisions, and vary between different experiments. 

Quick Brown Fox 
536 Broadway 
Nl'w York, New York 
10012 212 925 8290 


(a typing tutorial and educational game for the Commodore 64 - 
disk version) 

Let your fingers do the stalking with QuickFinger, an educational 
game that teaches kids of all ages and adults how to use a 
computer keyboard. QuickFinger is ideal for home and classroom 
use; it includes three action-oriented games that combine color 
and sound to provide an exciting entry to keyboarding without 
tedious note exercises. 

• Duplicate enhro diskette using one or two drives 

• Print any disk file to printer or the screen 

• Disassemble machine language files directly from disk 

• List disk directory to printer or the screen 

• Execute any BASIC or machine language program from disk 

• LOAD/B.LOAD any BASIC or machine language program from 

• SAVE/B-SAVE any BASIC or machine language program from 

• Append BASIC programs to a memory resident program 

• Read drive errors instantly 

• Change drive numbers to add more drives 

• Rename, Erase and Compress disk files by answering a prompt 

• Format or clear new disks 

• Quit to BASIC to continue working on your program 

• And more, , , 

Call Rz/ Plus any lime by pressing the @ key (and RETURN). 
The menu appears instantly ready for your commands! $34.95 US. 
on disk. 

In ALPHA-ZAP, random letters drop out of the sky. The player 
must prevent these letters from "zapping" a hapless pedestrian 
strolling across the screen. The letters begin to come faster and 
faster and before you know it, you're a master on the keyboard. 

In KEYBOARD PACER, the standard QWERTY typewriter key- 
board is displayed on the screen. At first, letters slowly begin to 
flash one at a time. Speed and accuracy are tested by players as 
they attempt to type letters that flash on the keyboard. 

In LINK THE LETTERS, the trick is to find three and four-letler 
words hidden in a maze. This is a good vocabulary building game 
as well as an innovative keyboard exercise. 

From the makers of the popular Quick Brown Fox word-process- 
ing program, QuickFinger is your entree to any computer applica- 
tion that requires ease and familiarity with the keyboard. Contact 
QBE above for info. 

Better Letter & Better Writer For The 64 

We write your letters. Invitations. Resumes. Announcements. 
Applications. Greetings. And many more. 100 letters just waiting 
for you to fill in a few simple details, and. . .PRINT! Select a letter 
from the disk and load it into your favorite word processor. If you 
don't have one, use our simple to operate Better Writer supplied 
with the package. Sup[)orls most word processors using your 
computer's ASCII format. BeUer LeUer & Writer comes on disk for 
$34.95 US. 

Quick Touch Typing For The 64 

We teach you typing. Step by ,slep. Easy to follow lessons even kids 
will love- And then, we make you type FAST. You actually watch 
your speed increase with every drill $24.95 US. on disk, $22,95 on 


This easy to use program turns your disk drive into a powerful 
machine! No more lengthy hard to remember BASIC command- 
s. . .totally transparent. . .your program in memory remains intact 
until Ez/Disk Plus LOADs or RUNs another. Indispensable tool for 
every drive owner, Ez/Disk Plus features: 

• Support for up to four disk drives 

Add $2 fur .shipping. Add $3 for COD, NY residents add 8,25% lax. 
For more on these 3 packages: 

SOFTRON, [nc. 

150 Nassati St, Suite 2024 

New York. NY 

10038 212 608 2922. 



An Interactive Video Disk/Microcomputer Instructional System 
for the Low-End Market. We call it LaserSoft, and we developed it 
for the low-end market serving schools and families. 

Initially, it has been desii^ned to work with the following equip- 
ment configuration: Commodore 64 microcomputer with 1541 
disk drive, a color monitor, Pioneer 8210 video disk player, and 
our MicrO'Ed conlruller box to link the micro and the video disk 
player. The controller box will ,soon be modified to permit its use 
with other micros and video disk players. 

A key goal has been the development of a low-cost product for the 
mass market. Interactive video disk/microcomputer systems are 
not new. However, the price has been high. One highly touted 
configuration carries a purchase tag of more than ten thousand 
dollars. This may not be a prohibitive consideration for major 
corporations using large-scale industrial training programs. But 
that kind of money certainly prevents the employment of such a 
system by schools and families. 

This is where L^serSoft comes in. The Micro-Ed controller box 
which is at the heart of the system will have a retail selling price of 
under two hundred dollars. Small in size {only slightly larger than 
a deck of playing cards), it enables the microcomputer to access at 
random any of the thousands of frames contained on the video 
disk and present these on a single color monitor screen utilized by 
both the micro and the disk player. 

For example, Micro-Ed and the Society for Visual Education {a 
Chicago-based educational publisher of audio-visual materials) 
recently cooperated on an experimental project with far-reaching 
implications. More than thirty-seven thousand photographs from 

Thtt Transactor 


Volutfitt 4, Issue 06 

various filmslrip series marketed by SVE were pressed on a single 
side of one video disk. Micro-Ed then wrote some educational 
programs that called upon a variety of these pictures for instruc- 
tional purposes. 

For instance, two of the programs had to do with understanding 
maps and globes. At one point, instead of laboriously trying to 
make the computer draw a picture of our planet as seen from outer 
space, we had the video disk present a photograph of Earth as it 
was actually seen on a moon voyage by American astronauts. It 
was possible to show pictures of a globe being taken apart to make 
aflat map. Highly detailed specialized maps of one kind or another 
were presented for examination. And so on. The difference in 
visual impact between using the microcomputer alone and em- 
ploying it in conjunction with video disk technology was impres- 
sive, fosay the least. 

Micro-Ed's LaserSoft System is scheduled for commercial intro- 
duction by February, 1 984. Dealer inquiries are invited and should 
be directed to George Esbensen, National Sales Coordinator. The 
toll free number is l-800-MICRO-ED. 

BUSSter GR software controlled features include: selectable baud 
rates (75 to 19.2K), 110 character input buffer (larger buffers 
optional) with X-ON X-OFF feature, parity and word length 
selection, readable data terminal ready input, and data set ready 
output. Special commands allow the user to read input buffer 
status. An 8 position dip switch selects device address (0-31)» start 
up baud rate (300 or 1200), auto line feed and auto carriage return. 

The BUSSter GR is easily programmed through Basic commands 
from the host (IEEE-488) computer. It comes assembled and tested 
with case, power supply and standard female GPIB and DB-25 

The BUSSter GR sells for $495,00 in standard version, and is 
available from stock. Contact: 

Shirley Fletcher 
Connecticut microcomputer 
36 Del Mar Drive 
Brookfield, CT 
06804 203 775 4595 

PO. Box 444005 
Eden Prairie, MN 
55344 612 944 8750 

IEEE-488 lo RS-^asa Interface 

The CmC BUSSter GR is a microprocessor based interface designed 
to allow any computer with an IEEE-488 interface to communicate 
with any device that has a standard RS-232 interface. These 
devices can include printers, modems, terminals, mainframes, 
and other computers. It is very versatile and easy to use. 

Interpod For ViC 20/ C64 

Inlerpod is a free standing multiple interface designed to allow the 
VIC 20 and Commodore 64 to communicate with all Commodore 
peripherals and standard RS232 devices. It has serial bus I/O 
sockets and may be place anywhere in the serial chain. The unit 
does not affect the computer m any way and no memory is used 
inside the computer, 

Ifanaddresseddeviceisnot present on the serial bus, Interpod will 
attempt to find it on the parallel bus. A reserved device address 
(normally 4) may be chosen for communication with the RS232 
port. Alt 3 buses can be used simultaneously and the selection 
process is completely invisible to the computer. The RS232 is also 
completely controllable. Contact your dealer or: 

Oxford Computer Systems Ltd, 
HensJngton Road 
Woodstock, Oxford 0X7 IJR 
England tel. (0993)812700 

The Transactor 


Volume 4, Issue 06 


So many letters have been pouring in that it has become 
impossible to answer ttiem all individually. Besides that, 
most of the questions haoe a similar nature. The result? Our 
new Letters section. 

By the time this issue is released, all of our back mail prior to 
March 1 should have arrived. If you are missing anything, 
please write Mandy Sedgwick about getting things fixed up. 

Oops on us: How stupid of me! What? What am I talking 

about? Oh yes. how stupid of me to believe that 1 should be 

subscribing to (and thus supporting) a Canadian (a genuine 

Canadian) publication, i thought in return for my few bucks 

of support that i would receive a bi-monthly (that means 

one every two months, right?) magazine. But alas, as with 

many things Canadian 1 have received very little for my 

money and am having to spend an additional amount (in 

time as well as money - how dare you take me away from 

my computer!) to inquire as to where my Transactors are. 1 

have not seen one since the July issue (which came out in 

late August!?! - methinks somebody had too many coffee 

breaks). That was numero four of six. I should have number 

5 and 6 bv now. At least I think bimonthly means six in a 

year. Come on guys - what happened to number 5 and 

number 6?, 

Bruce Spafford, St. Thomas. Ontario 

Well Bruce, your letter pretty well sums up most of the letters 
in our complaints department, but with a sense of humour 
that is most appreciated. Your letter was dated Dec 16, 
about 6 days after we sent out Issue 05. I admit, about 4 
months passed between the release of Issue 04 and 05, and 
perhaps we spent too much lime on one project. But looking 
back, / wouldn 't haoe changed a thing. I also have to admit 
that I made the reference issue for my own benefit. So far I've 
used mine enough times to put dog ears on every page. 

Mapped out: I have recently acquired a SuperPFT and 
wish to program in the 6809 Assembler language. However, 
I cannot seem to find a set of memory maps. 

Alan Wunsche, Oshawa, Ontario 

Unfortunately, there is no such animal that 1 know of. The 
SPET languages are all written on a large mainframe that 
generates the 6809 code for the various languages. Memory 
usage is left at the discretion of the mainframe and since ail 
development is done on the mainframe, the people at 
Waterloo have no need for memory maps. We actually tried 
to get them for our reference issue with no luck. 

Tape worms: I have hooked up two Commodore VIC 

Datasettes tape to tape in an attempt to copy programs, 

however, the copy is totally ignored by the VIC. Audio wise, 

both tapes sound identical. An oscilloscope check of both 

show identical pulse widths, amplitudes, spacing, and AC & 

DC levels. A frequency counter check on the sync tone is 

also the same. Any suggestions? 

R.D, Anderson, James Park, New Brunswick 

Sounds to me like a case of bad luck more than anything 
else. With that many identical characteristics, rejection 
would seem unlikely. Richvale Telecomm have been copy- 
ing tapes for TPUC since they began offering them using a 
high speed tape-to-tape copier with excellent results. Per- 



Volume 5, Issug 01 

haps they might be able to offer some advice. 

Re-Numbed: Having worked with Ihe HP 9830, which 
features auto line numbering as well as re-n umbering, I 
wondered if the C64 had these features. ! have experi- 
mented but so far without success. I noticed mention of a 
Renumber command in an earlier Transactor, Does this 
command exist? 

Frank Vanzeist, St. Marys, Ontario 

The Renumber command iS nol included as part of the C64 
or any other earlier CBM equipment. In lieu of this, several 
programming aid type programs have been written that 
Include this and other commands such as Find & Change 
and multi-line Delete. "Power" from Pro-Line software (see 
ad) is one of the more popular packages and I believe they 
have a version for the 64. Power loads into RAM and thus 
reduces the space available for writing BASIC, but not by 
much. Also, in Volume 4, Issue 03 of The Transactor, C64 
Tiny Aid was published - another aid program that contains 
only a subset of these extended commands. 

Explanation? Rebuttal? Retraction? Distraction? 

I feel I must comment on the picture that appeared on page 
1 4 of the last Transactor, Readers may be puzzled by if, since 
[ appear to be in contrast with my usual image of a re- 
strained, studious person. 

Without a[i explanation of how the picture came about, the 
impression might be created that [ was trying to "catch the 
spotlight", as it were. Nothing could be further from the 
truth- Karl Hildon, the illustrious editor of The Transactor, 
can vouch for the following facts. . . after all, he^s in the 
picture (literally)- 

It happened at the World of Commodore show, 1 was in a 
place called the "media centre", which was a curtained off 
area in the vicinity of the Commodore displays. At the time, 
I was leafing through notes for my next presentation. 

Suddenly, I heard familiar voices floating in from the other 
side of the curtain. Some of them were long lost Commodore 
Canada people. . , not lost literally, of course, but who had 
left Commodore Canada and for that matter, had left the 
Toronto area. ( knew that Paul Higginbotfam (currently 
working in Dallas) would be coming, since he was a speaker; 
but until I heard his voice, I didn't know he had arrived. 
David Berezowski was a complete surprise: I hadn't known 
he would be at the show. 

were lining up for a photograph, there on the other side of 
the curtain. They didn't know I was there; and I had just that 
moment discovered that they had arrived. 

I really didn't want to walk out and break up the session 
with a social scene (''Hello, Paul, when did you get here?. . . 
Good to see you, David . . ."). I felt I could make my 
presence known in a less disruptive way. 1 leaped through 
the dividing curtain in front of the group, faced the camera, 
and exclaimed "Ta-da!", 

I hadn't expected the camera to take the picture. 1 expected 
even less that the Transactor would print it. If you looked at 
it with no other explanation, you would think that five 
people were posing nicely for a photograph, and one was 
mugging at the camera. And Tm not like that at all. 

1 hope that this explains things. It was just an event in 
progress caught by the camera. You should understand that 
Tm still the same thoughtful, studious and reticent person 1 
always was. Karl will vouch for that. 

There's just one thing that bothers me about the photo- 
graph, though. Less than a second before, I had burst 
unexpectedly into the picture from behind an adjacent 
curtain. Here's what puzzles me: Why does nobody in the 
photograph look surprised? 

Jim Butterfield, Toronto 

Jims ' account of the circumstances is a pretty accurate one. 
But when I got the disk from Jim with his latest articles on it, 
the above letter was title "protest'^ in the directory. Actually, I 

think the picture turned out fabulous. Otherwise we would 
have printed another shot that turned out somewhat less 
than spontaneous - my personal favourite kind of picture. 
We were going to print the other photo we snapped of Jim 
changing into his T-shirt, but Cosmopolitan bought the 
negatives off us - the S5 was o real shot in our budgetary 

As for the last question. . . is it possible there was nothing to 
be surprised about? Energy levels at computer shows run 
extremely high - a tense atmosphere comes with the terri- 
tory. Jims' presence at any show is .'>urpassed only by his 
talent for relieving .some of that tension, and his method 
displayed in the picture had to be his most effective to date. 
In fact, I hope someday 111 be able to release Version 2. of 
the same photo come the next computer show. I hope Jims ' 
'Ta Da" will he the que for that shot too. 

It was obvious from the things they were saying that they 

Ths Transactor 


Votunw 5, UmeOI 

Bits and Pieces 

Computenmachinen Blitzensparken 

Screen dazzlers do only one thing better than tormenting a 
cathode ray. They demonstrate the lightning speed of ma- 
chine language. The nexl batch of loaders are the creations 
of Richard Evers. Rich says. 'TheyVe really not to difficult to 
write, it's just that they usually turn out differently than 
originally planned/' 

The Brain 

5000 renn screen marquis 80 

501 for j = 634 to 688 : read x : pokej.x : next 

5020 sys 634 

5030 data 169,128, 133, 88,169. 0,133, 87 
5040 data 160, 2,173,207,135. 72,173, 1 
5050data128, 72,173, 0,128,141. 1,128 
5060 data 177, 87,170,104,145, 87,138, 72 
5070data200, 208, 245, 230, 88,165, 88,201 
5080 data 136, 208,237, 104, 104, 141, 0,128 
5090data165, 155.201.239,208,202. 96 

When this one was finished, it left the screen in such a state 
of disorder it could only be called The Brain. The code is self 
modifying, a no no in more serious applications, but it 
makes fast, compact code. The Brain checks the STOP key - 
we felt a good brain should at least do that. 

2000 rem the brain 80 

201 for j = 634 to 693 ; read x : pokej,x : next 

2020 sys 634 

2030data169, 128, 133, 88,169, 0,133, 87 
2040 data 168, 177, 87,133, 89,230, 89,165 
2050 data 89,145, 87,200,208,243,230. 88 
2060 data 165, 88,201.136,208,235,206.149 
2070 data 2,238. 123. 2, 173, 123, 2,201 
2080data132, 208. 213. 169, 128, 141, 123, 2 
2090data169, 136, 141,149, 2,165,155,201 
21 00 data 239, 208, 197, 96 

Screen Marquis 

Just like any other marquis, except this only does one 
screenfull and it^s a lot shorter. It too checks the STOP key. 

The Boxer 

This one^s in BASIC, but it uses the special window 
commands that are only in the 8032. It also makes a 
great screen "set-up^' program for Screen Marquis 80 
or The Brain 80. Type in The Boxer first: 

10b = 160:c = 79:e = 23 

15 for d = to 11 :a$ = chr$(d + 219) 

16poke224,0-fd:pQke225,24-d:poke226,0 + d 

20fora=1 tob: print a$; : next 
40 for a = Jto e 

50print"BI|"a$tab(c)a$; : next 
60b = b--4 :c = c-1 :e = e-2 : nexld 
70 sys 634 : rem goto 1 5 

Then change line 70 from GOTO 15 to SYS 634 as 
shown. If you have already tried The Brain or Screen 
Marquis, line 70 will activate it once The Boxer is fin- 
ished. Otherwise you'll have to RUN one of the previous 
loaders to avoid crashing. 

The Tratiiactor 


Volunto 5, liiue 01 

Screen Marquis 40 

. . .is the same as the 80 column version. The only changes 
are (he last address of screen memory, and a short time 
delay loop was inserted at the end to slow it down a bit. 

5000 rem screen marquis 40 
501 for j - 634 to 698 : read x : poke j,x : next 
5020 sys 634 

5030data169. 128, 133, 88,169, 0,133, 87 
5040data160, 2,173,231,131, 72,173, 1 
5050data128, 72,173, 0,128,141, 1,128 
5060 data 177, 87,170,104,145, 87,138, 72 
5070data200, 208, 245, 230, 88,165, 88.201 
5080data132, 208, 237, 104, 104, 141, 0, 128 
5090 data 160, 240, 162, 0, 232, 208, 253, 200 
5100 data 208, 248, 165, 155,201,239,208, 192 
51 10 data 96 

Commodore 64 and VIC 20 Versions 

Screen Marquis for the C64 and VIC 20 is only a little more 
involved. The colour table must also be scrolled every time 
the screen is. Otherwise characters tend lo disappear when- 
ever they are moved to a location that initially contained a 
space. Early 64s won't have this problem because they have 
a different Kernal ROM. Marquis 64 was designed to work 
with either Kernal, 

The number shown in bold in line 5130 is the delay counter 
value. The lower this number, the longer the delay. 

5000 rem marquis 64 
50 1 for j = 828 to 924 : read x 
5020 sys 828 

5030 data 169, 4, 133. 88, 
5040 data 169, 216, 133, 91, 
5050 data 160, 39, 177, 87, 
5060 data 133, 92, 160, 0, 
5070 data 90, 133, 93, 165, 
5080 data 92, 145, 90, 134, 
5090 data 92,200, 192, 40, 
5100 data 90, 105, 40, 133, 
5110data105, 40.133, 87, 
5120 data 230, 88,165, 88, 
5130data160, 240, 162, 0, 
5140 data 208, 248, 165, 145, 
51 50 data 96 

: pokej.x : next 

169, 0, 
169, 0, 
133, 89, 
177, 87, 
89, 145. 

89, 165, 
208, 230, 

90, 24, 
201, 8, 
232, 208, 
201, 127, 

133, 87 

133, 90 

177, 90 

170, 177 

87, 165 

93, 133 

24, 165 

165, 87 

230, 91 

208, 192 

253, 200 

208, 160 

Marquis 20 is for unexpanded VIC 20s. The numbers in bold 
in lines 5030, 5040 and 5120 are, respectively, the screen 
start address high byte, the colour table start a(idress high 
byte, and the screen end address high byte. For VICs with 

memory expansion that changes these addresses, change 
these 3 numbers to 16, 148, and 18, respectively. 

Once again, the number in bold in line 5140 is the delay 
counter value. Make this smaller for a slower scroll. 

5000 rem marquis vie 20 
501 for j = 828 to 924 : read x 
5020 sys 828 

5030 data 169, 30,133, 88, 
5040data169,150,133. 91, 
5050 data 160, 21,177, 87, 
5060 data 133, 92, 160, 0, 
5070 data 90, 133, 93, 165, 
5080 data 92, 145, 90, 134, 
5090 data 92,200, 192, 22, 
5100data 90, 105, 22, 133, 
51 10 data 105, 22,133, 87, 
5120data230, 88, 165, 88, 
5130 data 160, 224, 162, 0, 
5140 data 208, 248, 165,145, 
5150 data 96 

: pokej,x : next 

169, 0, 
169, 0, 
133, 89, 
177, 87, 
89, 145, 

89, 165, 

90, 24, 
201, 32, 
232, 208, 

133, 87 

133, 90 

177, 90 

170, 177 

87, 165 

93, 133 

24, 165 

165, 87 

230, 91 

208, 192 

253, 200 

208, 160 

The Brain for the C64 works the same way as the 80 column 
version, but is subject to the same problem as Screen 
Marquis. Except this time it is corrected by adjusting the 
background colour as opposed to the foreground colour. If 
you remove line 2010 before running this program, you'll 
notice that the spaces on your C64 screen seem to be 
unaffected. That's because the foreground colour of a space 
is the same as the background colour. The POKE in line 
2010 changes the background colour to give the characters 
something (o show up against. 

2000 rem the brain 64 

201 poke 53281 , 493-peek(53281) 

2020 for j - 828 to 887 : read x : pokej, x : next 

2030 sys 828 

2040 data 169, 4,133, 88,169, 0,133, 87 

2050 data 168, 177, 87,133, 89,230, 89,165 

2060 data 89,145, 87,200,208,243,230, 88 

2070 data 165, 88,201, 8,208,235,206, 87 

2080 data 3,238, 61, 3,173, 61, 3,201 

2090data 6,208,213,169, 4,141, 61, 3 

2100data169, 8,141, 87, 3,165,145,201 

2110data127,208, 197, 96 

The Plunge 

The Plunge also uses the window features of the 8032 so it 
won't work on other Commodores. 



Volume 5, Issue 1 


rem the pi 

for j = 634 
sys 634 
data 1 69, 
data 1 69, 
data 168, 
data 200, 
data 136, 
data 213, 
data 165, 
data 201, 
data 255, 

unge - 1984 r.t.e, the transactor 
to 702 : read x : pokej,x : next 

19, 32, 
128, 133, 
177, 87, 
208, 246, 
208, 238, 
230, 226, 
239, 208, 


210,255, 32, 
88, 169, 0, 
170,232, 138, 
230, 88,165, 
169,147, 32, 
196,169, 19, 
255, 96 

133, 87 
145, 87 

88, 201 
225, 198 
165, 155 



Sequins is anottier demo that stiows how ttie cathode ray 
can often not keep up with the incredible speed of machine 

100 rem sequins 80/40 

11 for j- 634 to 662 : read x : pokej.x : next 

120 sys 634 

130 data 162, 0, 160, 0, 254, 0, 128, 238 

140data127, 2,222, 0,130,206,133, 2 

150 data 200, 208, 241 , 232, 208, 236, 165, 155 

160data201,239, 208, 228, 96 

1 000 rem sequins 64 - 1 984 r.t.e, the transactor 

1010 pol^e 53281 , 493-peek(53281) 

1 020 for j - 828 to 856 : read x : poke], x : next 

1030 sys 828 

1 040 data 1 62, 0, 1 60, 0, 254, 0, 4, 238 

1050 data 65, 3,222, 0, 6,206, 71, 3 

1060dala200, 208, 241,232, 208, 236, 165, 145 

1070data201, 127,208,228, 96 


"Curtains" demos how the 8032 (SuperPET, and B Series) 
video controller chip can be altered to blank the screen. 
Register 6 of the 6845 controls the number of display lines 
on the screen- Normally it contains the number 25, natu- 

The 6845 video chip is controlled by 2 registers at 59520 and 
59521 (55296 & 55297 on B Series). First 59520 is POKEd 
with the register number for which you want access. Then 
59521 is POKEd with the value to be sent there. Both 
registers are write only so reading them with a PEEK will 
give unreliable results. 

The demo also shows how text can be written to the screen 
while it is blank. The chip is poked with values of 1 through 

25, but there's no reason why you can't go directly from 25 
to 1 . To stop the program, hit the SHIFT key. If you hit STOP 
you may find yourself left with half a screen. POKE 
59521,25 will get everything back to normal. 

100 print" 

11Gforj = 1 to24 

120fori = 1 to 79 

1 30 print " -t- " ; : rem fill screen 

140 next! : print 

1 50 next j 

160 print "0" 

1 70 poke 59520,6 : rem select reg 6 

180torj-25to1 step-1 

190 poke 59521 , j : rem write to reg 6 

200 next 

21 print " print on screen while blank 

220forj = 1 to 25 

230 poke 59521 , j : rem reg 6 still selected 

240 next 

250 if peek(1 52) then poke 59521 ,25 : end 

260 goto 1 80 

Graphic Print 

This next routine is rather useless the way it stands, but the 
part that plots the bar chart is simple and fast. The variable 
HT (height) could be replaced by data READ from a DATA 

rem vie 20 

rem vie 20 w/exp 

rem c64 

10sc = 4448:ln = 22 

20 so -8032: In = 22 

30sc = 1824:ln = 40 

40 sc = 33408 : ln = 40 : rem 40 column 

50 sc = 34048 ; In - 80 : rem 80 column 

60 input " 0enter a word " ;a$ 

70 rem poke 53281 , 1 2 ; rem for c64 

80 for i = 1 to len(a$) 

90ht = asc(mid$(a$,i,1)):lt = sc + i-ln/2-(ht-64) 

1 00 y = sc + i : poke y + In, ht + 64 
110(orj = y toltstep-ln 

1 20 if j = It then poke j, 1 23 : goto 1 40 
130 poke j, 97 
1 40 next 

IVIodulo Counter 

Paul Obeda of London, Ontario, uses this handy little 
counter that will go from I to any value of your choosing, 
and then repeat, without any IF/THEN statements and 
independent of any FOR/NEXT loops. 

c = -c ' (c < max) + 1 

r Tha'franwutor 


Volume 5, Issue 01 

The statement (C< MAX) will yield a result of -1 wtien true 
and for false. For example, if MAX = 1 2 and C starts at zero, 
-Cwill be multiplied by-1 since is definitely less than 12. 
1 is added and C now equals 1 . Then -1 is mukiplied by -1 , 
plusl equals2. And so on until C equals 12. -12 *(12<12) 
equals 0, plus 1 and we're back to the start. 

Of course MAX could be any value, but so can + K This 
could be replaced by any expression your imagination can 

Reverse RVS 

Setting Reverse character print is as easy as printing a RVS 
field control character. But there's another way that is 
somewhat uncommon but can be handy in the right circum- 
stances. Suppose you want every second character of a 
message to be in Reverse field. Can you imagine all those 
control characters? Try this: 

10 a$= "somestnng" 

20forj = 1 tolen(a$) 


40 print mid$(a$j,1); 

50 next 

60 print ''Q" : rem cursor up 

70 goto 20 

Line 30 POKEs 199 with alternating values of 1 and 0. (Use 
199 for C64/V1C 20 and 159 for BASIC 2/4) This is the RVS 
held flag for the operating system. When you print a RVS 
field control character, the OS does virtually the same thing. 
Location 199/159 is checked by the PRINT routine as it 
outputs characters. 

One Line PET Emulator 

Need to RUN some PET software on your Commodore fi4? 
Try these POKEs courtesy of Jim Butterfield. Most of what 
they do is set the screen to $8000 (32768) and the bounda- 
ries of BASJC text space from $0400 to $8000. This will 
handle most programs, even those that POKR to the screen. 
But programs with SYS calls to machine language routines 
that perhaps rely on the operating system will give you 
trouble no matter what adjustments are made. C64-Link 
users will have to use the Link Relocator first. 

1 poke56576.5:poke53272,4:poke648,128: 

On Error Goto 

This tidy little error trapping routine is another Butterfield 
original. Jim POKEs the code in at SCFOO where it's out of 
the way, but it^s totally relocatable so it could be set up 
anywhere. Line 50 adjusts the Error Message Link to point at 
$CFO0 (207*256 + 0), 

First, the code tests for an error. If there isn't one, it jumps to 
warm start or READY. If there is one, the error number is 
stored in $030D (781) which is also used as the X register 
save for SYS. (The error number is held in the X register - 
see page 22 of The Reference issue for a complete list of 
error numbers). Then the number 1000 is placed at $14,15 
and the routine jumps to the GOTO routine in ROM, Note: 
the stack pointer is reset to $FA so all RETURNS and FOR/ 
NEXT loops will be popped off the stack. 

Line ''1000" is determined by the two numbers shown in 
bold on line 15(1000 = 232 + 3*256), If you want to use a 
different range of lines for your error trap, just change these 
two numbers accordingly. For example, line 50000 would 
be 80+ 195*256). 

10 data 16, 3, 76,139.227,142, 13, 3 

15data169, 232, 133, 20,169, 3,133. 21 

20 data 162, 250, 154, 169,167, 72,169,233 

25 data 72, 76, 163, 168 

30 for j = 52992 to 5301 9 : read x 

40 poke j, X : next] 

50 poke 768, : poke 769, 207 

100 rem test program 

1 1 stop 

1000x = peek{781) 

1010 if x = 2 then print "you already opened 

that file, numskuir 
1020 If x = 20 then print "you can't divide by zero, 

calculus breath" 
1030 if x=^11 then print ''type It right this time, ninny" 
1040 print "something else went wrong, probably 

your fault" 
1 050 end 

Once installed, try executing OPEN 4,4 twice. PRINT 1/0, 
and any old syntax error. With this routine one can write a 
more informative and user-friendly error status reporter. 
Some errors could even be fixed for the user followed by 
re-entry to the program. 

But Seriously Folks. • , 

Coming up with new discoveries on your computer might 

Tho Transactor 


Volumes, I«sue01 

be personally rewarding and i ntell eel u ally stimulating, but 
there's no immediate recognition. Now it's time tor the other 
extreme - a fanfare for everything you try. Thanks to our 
Rick Evers. everylime you hit return with this little routine 
installed, you'll get a drum roll and cymbal finale. 

The routine is linked in by the Input Vector of the 8032 type 
machines. Line 110 re-points the vector at this code, and it 
in turn transfers execution to the input routine. We'll have 
more on vectors, links, and pointers in the next issue, 'The 
Transition to Machine Code''. 

1 00 for j = 634 to 686 : read x : poke j,x : next 
1 1 poke 233, 1 22 : poke 234, 2 
120 data 8, 72,138, 72J52, 72,169, 16 
130data141, 75,232,169. 55,141, 74,232 
140data169, 0.133, 0,141, 72,232.160 
150data 0,200.192, 21,208,251,230, 
160data165, 0,201, 0,208,238,141, 75 
170data232. 141, 74,232,104,168,104,170 

180 data 104, 40. 76, 29,225 


This next sound effect for the C64 is from 12 year old 
Howard Strasberg of Toronto, Ontario. Notice how little 
code is required to keep the SID making sounds once it's set 
up properly. 

1 s = 54272 

20 for 1-0 to 24; poke s + LO: next 

30 pokes + 3, 8 

40 poke s + 5, 128 : poke s + 6, 8 

50pokes+14, 117 

60pokes + 18, 16 

70pokes + 24, 143 

80 for fr = 1 to 24000 step 1 00 

QOgosub 150 

1 00 next f r 

110forfr = 24000to1 step -100 

1 30 next f r 
140 run 
150 poke s-f 4, 65 

160fort=1 to4 
170fq-fr + peek(s + 27)/2 

1 80 hf = int(f q/256) : If = fq and 255 

190 pokes, It: pokes + 1, hf 

200 next t 

210pokes-+-4, 64 

220 return 

aMAZEing quickies 

This next couple of short snorts come from Chris Zamara of 
Downsview, Ont. 

The below will work on any commodore machine, but make 
sure you're in upper case/graphics mode. Try this liny 

20 rem a shifted " n " and a sfiifted " m " 

Or for a different effect: 

10 print mid$r/\X"jnd(l)*3+ 1,1);: goto 10 
20 rem the X is a shifted " v " 

Here's a neat variable one. 

lOgetaS: v = val(a$) : if vthen m=^v*2 
20 if rnd(1)<.5 then print left$("//////////////////'' 

,rnd(1)*m); : goto 10: rem 18 shifted 'n"'s 
30 print Ieft$(■'\\\\\\\\\\\\\\\\\\^^^d(1)*m);:goto10 

40 rem 18 shifted "m^'s 

After running the above program, press one of the number 
keys 1 to 9. See the different patterns that the different keys 

CBM 4032 V2.2 Disable 

For those of you with 80 column machines, you may or may 
not know about Chuan Chee's CBM 4032 program. It con- 
verts the 8032 to behave just like a 4032 making life a little 
easier when you want to run a 40 column program. Version 
2.2 is the latest. Early versions had minor bugs and loaded 
In about 10 seconds. V2.2 is clean as a whistle and boots up 
in a split second. 

If this utility gets more than a little machine time on your 
computer, you need not reset the entire machine to disable 

sys 1 4 * 4096 

, . .disables CBM 4032 with no nasty side effects on the 
program in memory. Once back to 80 columns though, 
you'll have to re-boot to get back to 40. 

Th« 'h'aniactor 


Volumes, Uauo 01 ~l 


He may not look like much, but Tm teirn ya Joe, 

he's an ornery cuss! 

J" '^y^'^j^cc 

He'll do anything to get out o1 programming, 


You say he's unbeatable eh? 
Here^ slip this in his disk drive, 


It won't be long now. There's a whole flock 
20 miles SE of us heading our way 

I The Iron SQCtor 


Volume 5f laaueOI 



^UAKMVsi TO WLVE VHiM) oro^p^ ,J MECHMrcS 

wfrH ■GOMR^'coE'PFicie^rri *nD 






^,av £^nf^*^ '^*^'^ CLAtk 







We get letters all the time 

requesting pormlealon to reprint 

Fred Crone's Beagle Broa dlsfc 

envelope warnir\ga in various 

computer Journals. Well, you've got 

our permission, ttanks for asking! 

Here Is a copy of the warnings, 

suitable for reproduction 

( unprotected! ). 

WE ONLY ASK that you print 

theae drawings with both of the 

cr^dJt lines at the bottom. If you 

don't, and Fred finds out, he'll send 

his goons out after you. 


BZAOLB BfiCe .' *3 L5 SIZRflA VISTA , 3AN DraOO, GA SeiOa 




Mike Panning & Howy Parkins 




Mike Panning S Howy Parkins 

SYS 82i,.. IT'S EASY! 






The MflMflEEfl Column 

Don Bell 
Milton, Ontario 

Letters to THE MANAGER 

There have been several [elters to the MANAGER column. I 
will respond to a few of them here. 

Alec E. Wittek, M,D. of the Department of Pediatrics, Stan- 
ford University Medical Centre asked about transferring 
data from one file to another using the 'Rearrange a File' 
function in the Manipulate Files option. This important 
process will be addressed in the next MANAGER column. 

James K. Condon M,D, of Gloversville. New York keeps 
records of his cardiac pacemaker patients on a data base. He 
likes the 1500 character record capacity of the "64 MAN- 
AGER but had trouble with the REPORT GENERATE option. 
I hope that the colun-m in this issue will resolve his difficul- 

Vernon H, Musselman of Royerford, Pennsylvania uses the 
^64 MANAGER for genealogy. He has over 2000 records on 
his family alone. He would like some help with the "ARITH- 
METIC option. This option will be covered in either the next 
or the following issue. 

A *64 MANAGER Gift List - Part 3 

Ever try managing fog, or just trying to drive in it? If youVe 
ever used the manual for the '64 MANAGER you know what 
I'm talking about. It rivals those I" pocket dictionaries as a 
miracle of brevity and conciseness. This is why I've gone to 
great lengths explaining this application in detail. Hang in 
therel A more comprehensive edition of the documentation 
is in the works and should be available by fall. 

This is the 3rd and final part of the '64 MANAGER Gift List. 
But don^t be deceived by the tide. Although the application 

started out as a Christmas Gift List, it has evolved into a 
"Personnel File" which could easily be adapted to keep 
track of club memberships, customer or client lists. This 
application is useful for storing names, addresses, telephone 
numbers, important dates and Christmas list information. 
Information can be quickly and easily entered into the file, 
rapidly retrieved according to complex search criteria, 
sorted in alphabetical order, and many useful reports may 
be generated. It is probably helpful at this point to recap 
what we've covered thus far. 

In the first article(Vol 4. Issue 05) I discussed loading the 
program, formatting diskette, designing an entry form on 
the screen in the CREATE/REVISE option, creating a file 
and entering records in the ENTER/EDIT option. 

In the second article (VoL 4 Issue 06} I listed the potential 
benefits to the user of this application, showed you how to 
get a screen printout of the lengths of fields in your file and 
field numbers, gave a detailed explanation of the fields in 
my revised screen format, showed some tricks for entering 
records quickly, and gave some examples of useful searches 
on information stored in the data base. 

My original screen design needed to be slightly revised in 
order to produce some of the reports i wanted. Thus. I 
presented a revised screen format in the second article on 
the Gift List application. Unfortunately, revising your origi- 
nal screen may have inadvertently resulted in your losing all 
the records in the old file. I apologize for not explaining this 
in more detail in the last column and regret any inconven- 
ience this may have caused you. 

In this third article I will introduce you to the REPORT 
GENERATE option, showing you how to generate: (1) vari- 
ous mailing lists; (2) a backup copy of your address book; (3) 
party/gift lists; (4) selective telephone lists; (5) birthday and 



Volume 5, Issue 01 

anniversary reminder lists; (6) appointment or next contact The illustration below shows the lengths of each field, and 
date lists; (7) and finally, how to modify your screen and file the field type (A = alphanumeric. N = numeric), 
to create a personnel, customer or client data base. 

Error Correction 

1 want to get this off my chest right away. I would like to 
apologize for some typographical errors in the previous 
MANAGER column. The title of the column should have 
Field numbers in the screen printout ran off the page and 
some extraneous blank lines appeared in "An Explanation 
of Fields In My Revised Screen Formal". 

To correct these errors. I will review the screen layout, field 
numbers, field lengths and some of the field descriptions. 
This will also be useful for those people who do not have the 
previous 2 MANAGER columns to refer to. 

The following illustration shows the Enter/Edit form that 

was designed in the CREATE/REVISE option. Field prompts REGD : 

and field numbers are shown. GIFT : t 

^** CHRISTMAS LIST (held lengths & type) **« 


30A t 


30A t 


30A t 


30A t 


2IA t M/F:1A 


21A t S/M/D: lA 


; t 8(A/N) t 



;t3Nt t 8A t BUS:t3Nt t 8A t 


:t2Nt t 4N 

t ANN VERSARY: t2NT t 4N t 


30A t 


30A t 


30A t 

23A t $t 8N t 

• ** CHRISTMAS LIST {field numbers) «** 



















t 9 

tllT t 

tl5t t 








; t M/F;6 

t S/M/D: 8 
BUS:tl3t T 14 t 
16 t ANNIVERSARY: ti7t t 18 



12 t 



GIFT :t 25 t $t 26 t 

GAVE : CARD: 27 PARTY; 28 
GIFT :T 30 

t $t 31 t 

CARD: 32 
GIFT :t 


35 t $t 36 t 




t $t 8N t 

GIFT :t 


23A t $t 8N t 

Making Field Entries in the Enter/Edit Option 

In the previous article I described how you enter informa- 
tion in the various fields in our ENTER/EDIT screen. Be- 
cause of some typesetting errors in the text, 1 am going to 
repeat some of the field descriptions. Refer to these field 
descriptions when entering records in the ENTER/EDIT 

Field 6{M/F) - enter 'M' for male, 'F' for female. Field 8{S/ 
M/D) - enter 'S' for single. 'M' for married, 'D' for divorced. 
Field 9(Z1P) - this is a numeric field if you only use American 
postal codes, otherwise it is alphanumeric. Field 10(NEXT 
CONTACT) - enter year month day in a 6 digit format, e.g. 
May 8, 1984 is 840508. 

Field 1 1(H0ME TEL) - enter a 3 digit area code. Enter the 
normal telephone number using a space as a separalor, e.g. 

Th« Tran (actor 


Volum* 5, Issue 01 

446 0001. Field 13(BUS) - enter a 3 digit area code for the 
person's business phone number. Fieid 14 - enter the 
normal business phone number using a space as a separa- 

Field 15(B1RTHDAY) - enter the last 2 digits of the person's 
birth year. e,g. 46 for 1946. Field 16 - enter birthday month 
day in 4 digit format, e.g. 0508 for May 8. Field 1 7(ANN[VER- 
SARY) - enter the last 2 digits of the year of the marriage. 
Field 1 8 - enter the month day of the anniversary in 4 digit 

Field 19(FAM1LY) - enter names of family members with 
ages, e.g. Johnny(4) Bill(7). , . Field 20(NOTESJ - enter notes 
about family, or personal information. 

Field 21{INTEREST)- enter your affiliation with this person, 
e.g. 'family' for family, 'business' for business associate, 'golf 
for golf partner or 'club' member It is important to use key 
words that describe a group of people you may want to put 
on a list, such as a telephone, card, letter, or party list. You 
can use as many words as you can fit in the 30 character 
field, separating words with a space. 

The entries for fields 22 to 36 are fairly straightforward. For 
cards, parties, and party invitations, use 'Y' to indicate 'yes^ 
and a blank or *N" to indicate 'no\ For VISIT/CALL use 'V for 
visit. 'C for call and space for nothing. Gift descriptions and 
their approximate value will be helpful for budgeting and 
planning next year's gift list. 

To obtain a screen printout of field lengths and field num- 
bers for your screen. Select the Enter/Edit option from the 
main menu, then make sure the screen is clear (if not, press 
Shift CLR/HOME). To display field lengths, press 'up arrow'. 
To display field numbers, press Shift 'up arrow'. Press V to 
get a printout either screen. You will need these printouts of 
field lengths and field numbers to refer to when doing 
searches or designing reports. 

Planning Your Report On Paper First 

We will use the REPORT GENERATE option to produce 3 
kinds of reports:{l) name/address lists -for a mailing list, an 

address book, or selective people lists; (2) telephone lists in 

alphabetical order; and important date lists - for birthdays, 

anniversaries or next contact date. 

It is a good idea to use the following 3 step procedure before 
actually entering screen information in the REPORT GEN- 
ERATE option: (1) Sketch the report layout on paper; (2) 
divide the report into zones and print areas; (3) define the 
details of each print area. 

Draw your report using pencil and paper (preferably graph 
paper). Show titles, headings, 1 or more sample lines of the 
body of the report, and any footers or totals you want at the 
bottom of each page. Record on your drawing line numbers 
and important column numbers. For our name/address 
lists, 1 designed a report layout that would easily work on the 
screen and the printer, 




1 5 



Mail Name 










ZIP Code 




This first report is designed for mailing labels. Line*'s 7-11 
are blank in order to advance the next mailing label on the 
printer to the correct starting position. If you print the list on 
8'' by 1 r' paper, then you will have 6 names on a page as 66 
lines divided by 1 1 equals 6. 

'64 MANAGER reports are described as having 3 different 
zones, a "HEADER ZONE" or title at the top of the page, a 
"UST ZONE" or list of the contents of the report, and a 
"FOOTER ZONE'' showing titles or totals at the bottom of 
the page. In a standard report we would have information 
for the Header, List and Footer Zones. HEADER information 
are page titles or headings that appear at the top of every 
page, LIST information is the main body of the report. 
FOOTER information appears at the bottom of every page 
of the report. 

The name/address reports do not have a footer or header, 
only a list zone. The list zone consists of the name and 
address information drawn from records in our file. 

Within each zone, there are several print areas ,i.e, distinct 
areas of information in the report. Print Areas can be any 
length up to 79 characters. One line may contain 1 print 
area or several. Everytime information in a report comes 
from a new source, it must be defined as a separate print 
area. The following illustration describes the zones and 
print areas used in our mailing list report. There are no print 

Th« Tronsoctor 


Volumq 5, Issue 01 

areas used in the header and footer zones and 6 print areas 
used in the list zone. 




Line* 2 



Print Areas Used 

Mail Name 





ZiP Code 

{Print Area*]) 
(Print Area *2) 
(Print Area *3) 
(Print Area *4) 
(Print Area *5) 
(Print Area *6) 

Print Areas Used 

When you run the REPORT GENERATE option, you will 
have to define ttie details of each print area in each zone, by 
filling in a screen similar to the following: 








1 ; 


2 3. 







In the screen above there are up to 10 pieces of information 
that you may need to supply. It's not as bad as it sounds, 
since you can often use the default entries for items (7) - 

(1) DATA TYPE (F-R-D-T> - the source of information for 
this print zone. 




information obtained from fields in your 

information obtained from arithmetic reg- 

data specified by Arithmetic function 
text entered to describe the report or data 

All of our information for this report comes from fields 
storing names and addresses of people. So all our entries 
will be 'F 

(2) SUBSCRIPT or source of the data: 

If we selected a field or register data type, we will now supply 
the field* or register*. The subscripts for my report are 
2,3,4.5,7,9, the field numbers for the name and address 
information J want on the mailing labels, 


1 2 3 4 

if you specified text for DATA TYPE, then this is where you 
insert the text. The dots and numbers help you with the 
design of your text entry, i.e. 1 is at column 10, 2 is at 
column 20, etc. 

(4) the LENGTH OF (print) AREA; 

To keep this report simple, we have made all print areas 39 
columns or 1 screen line. 

(5) the zone LINE NUMBER: 

Each zone has its own line numbers starting at line number 
1. Print area line numbers refer to line numbers in a zone 
rather than line numbers on a whole page oi a report. 

(6) the starting COLUMN NUMBER; 

Here you specify what column number your print area starts 
at. For my mailing list report, I started all print areas at 


Whether the print area is to be centered; 

Usually only header and footer print areas are centered. 


If required, this only applies to numeric fields, 


Whether you want to accumulate numeric information; 


If you chose to accumulate totals, whether you want to break 
the totals with 3 blank lines or a whole page. 

If you arc just learning how to use the REPORT GENERATE 

Th* Ik-encactor 


Volume 3, Issub 01 

option, you should always complete a CHART OF PRINT 
AREA DETAILS similar to the one below. The sources of 
information for this chart are all the previous diagrams in 
this article {i.e. field numbers, field lengths, the report layout 
and zone/print area divisions) , The chart below gives the 
details for print areas in the list zone of my name/address 
list. If your Create/Revise screen is different than mine, then 
your subscript numbers (field numbers) may be different. 


Print Area 


; *1 

*2 *3 




Data Type (F^R-D- 

-T) : 

: F 

F F 




Subscripl (source fie d) : 

: 2 

3 4 





Area Length 

; 30 

30 30 




Line Number in Zc 


: 1 

2 3 




Starting CO umn* 

: 5 

5 5 





: N 

N N 




"of decimals 


Accumu ate(y/n) 

: N 

N N 




Break type 

: N 

N N 




(This is the name of the file you created in Enter/Edit.) 


This is the critical entry that decides who will be on any of 
your lists. The first time through enter no search criteria, i.e. 
just press <RETURN>. This will give you a mailing list of 
everyone in your file. 

Referring to my screen layout of field numbers, here are 
some alternative entries, you may want to try later. 

F3>^ ' 
F32 = T 
F33 = ' Y' 
F34 = C 
F34 = V 
F35>' ' 

- only records with addresses 

- for this year's card list 

- for this year's party list 

- this year's call list 
-this year's visit list 

- this year's gift list 


Enter "S', press <RETURN> 

(As the address book report requires alphabetical sorting, 

we will choose to sort on field 1 , the last name field.) 


Using the REPORT GENERATE option, you will be able to 
generate many different kinds of reports from this applica- 
tion. The reports generally fall into 3 categories: (1) name 
address lists; (2) telephone lists; (3} important date lists. 1 will 
take you through the name/address lists step by step and 
then give you pointers on how you can create the remaining 
reports on your own. 

'"Be of great patience, watch the red light on the disk drive, 
and read the messages at the bottom of the screen", is my 
advice to those who are just beginning to use the REPORT 
GENERATE option. At certain times in the program you 
may think nothing is happening. Be patient, if the disk drive 
red light is on. something is definitely gohig on. 

While running the REPORT GENERATE option you need to 
refer to the previous illustrations in this article, i.e. field 
numbers, field lengths, the Report Layout, Zone and Print 
Area Divisions and the Chart of Print Area Details. 

From the Main Menu, press 'R' for REPORT GENERATE 

(Once the file is created enter 'D" instead of 'K\ above. 
You can then recall the report from the disk using its Report 
file name.) 

Enter T '. press <RETURN> 

Complete the next screen prompts as follows, pressing 'back 
arrow" after the last entry, 

1 30 A A 


Press <RETURN> to select output to screen 

(Output the report to the screen until you get it the way you 

want it, then enter T' for printer instead) 

Press <RETURN> 

Press <RETURN> 

(When you decide to output to mailing labels on the printer, 
enter '80^ for "LINE LENGTH' and ^66' for 'NUMBER OF 

Whether outputing to the screen or printer, make 
sure the *NUMBER OF LINES PER PAGE' is correct 
or you may have problems. 

Thtt Th'ansactor 


Volumes, Issue 01 

You will now see the screen below; 






At this point (although it is not immediately apparent), you 
actually have 4 choices, you can define the header, list or 
fooler zones or you can exit to begin the report. Press the 
space bar several times and these choices will become 
apparent. For this report, we only have to define the LIST 
ZONE. Press the space bar until the screen displays DEFINE 
LIST, then press <RETURN>. 


If you refer to the Zone and Print Area Divisions illustration, 
you will note that there are 9 lines in the List Zone. 
Enter -g', press <RETURN> 

Press <RETURN> 

You will now be presented with the following screen: 








1 .: 


2 3. 




For each print area In the LIST ZONE, complete the above 
screen using the information in my CHART OF PRINT 
AREA DETAILS. If the right entry is already displayed, you 
don't have to retype it, just press <RETURN>. When you 
have completed the screen for a Print Area press F7 to 
advance to the next Print Area. If you make a mistake you 
can void a Print Area by pressing Shift/CLR. When you have 
completed the screen for the last print area (in my case print 
area*6) press 'back arrow'. Note: You do not need to define 
print areas for the blank lines. 

Your screen will now show: 





Press the space bar twice or until the screen shows DEFINE 
EXIT then press <RETURN>, 

ARE YOU SURE? Enter 'Y', press <RETURN> 

Press <RETURN> 


If you are saving the report file conditions, you will be asked: 


Enter 'NAME/ADDRESS' (or whatever you want to call the 



Press <RETURN> 

Follow the prompts at the bottom of the screen, swapping 

disks when necessary. The report will then print to the 

screen . 

You do not have to re-enter all the report conditions the next 

Th« Traniaclor 


Volume 5, Istue 01 

lime you run the report as the report conditions were saved 
on adiskfile. 

To return to the beginning of the REPORT GENERATE 
option press F2. 

Enter 'D\ press <RETURN> 


Enter "NAME/ADDRESS^ press <RETURN> 

If you enter "N' the report will print to the screen according 
to the version you made the last time you saved the report 
conditions. If you want to change the report conditions 
specify 'Y". You will now have a chance to modify any of the 
report conditions. 

When you ve got the report printing to the screen to your 
satisfaction, modify it so that it reports to the printer, 

Enter T, press <RETURN> 

Confirm all the previous report conditions by pressing 
<RETURN> until you reach the following screen prompt: 

Enter T', press <RETURN> 

Make sure the printer is connected, powered up and the 
paper or labels are [jositioEied correctly. Thin mailing labels 
work better than thick ones. If the printer is not on, the 
program may crash- 
Answer the next screen prompts as follows, pressing <RE- 
TURN>'after each entry. 





The DEFINE PRINT ZONES screen will now appear. Press 
space until DEPSNE EXIT appears, then press <RETURN>. 

Respond to the next screen prompts as you did before. The 
report should now print out. To abort the printout, press 

You may have to fiddle with the total number of lines in the 
LIST ZONE to accommodate different sized printing labels, 

or printing paper. 

Backup Copy of Name/Address Book 

From the report conditions described above, you should be 
able to generate a backup copy of your address book, and 
mailing lists for cards, parties or visit/call iisfs. By changing 
the search criteria you can generate any number oi other 
name/address reports 

!t you have entered all the names, addresses and phone 
numbers of your address book using the Enter/Edit option, 
you now have what amounts to an electronic backup copy of 
your name/address book.(If you want it, you can also make 
unlimited printouts of it,) The advantages of having your 
name/address book in a data base are: (1) entries are easily 
inserted, edited or deleted; (2) names can be sorted alpha- 
betically anytime; (3) you can easily produce selective lists of 
names, addresses, phone numbers; {4} all relevant informa- 
tion about a person can be stored in one place; (5) you can 
produce lists or reports that relate to all the people in your 
data base file {e,g. all the single men or women you know 
between certain ages.) 

Telephone Number Lists 

Using the 3 step report design process mentioned earlier in 
the article (see Planning Your Report On Paper First), you 
should now be able to design a telephone list report for 
business and/or home phone numbers. By changing the 
search criteria you can generate telephone lists for different 
groups. For example, if all your friends who play golf have 
*goir in the "interest' field in the record that describes them, 
then you could generate a phone list of all your golfing 
friends by using tor your search criteria F21='golf\ (or 
whatever field number you used for ^interest'). 

Here is one way of organizing a telephone list report. 

The Transactor 


Volumes, ItsueOI ~~\ 


53 57 

66 70 80 

HEADER line*l 


LIST ine^l 



416 921 2246 

or source 

t t 

I 2 

t t t 
li 12 

t t 
13 14 

Important Date Reminder Lists In Ascending Date 

For birlhdays and anniversaries, the month and day have 
been put in a separate field from the year in order to make it 
easy \o sort and generate reminder lists (reports) by dale. 
You can add a birthday date and/or an anniversary date 
print area to the mailing card hst report, or preferably, 
design a whole new report- In your new report design the 
LIST ZONK migiit consist of the month/day field, the year 
field and then the mail name field. Your "SEARCH CRITE- 
RIA" will be '^N*>0", where "N*^" is the field number for the 
month/day for either the birthday or anniversary, and "^O" 
means you only want to search for those records that have 
an entry greater than 0. If you are using my screen format it 
will be ''N*16>0" for a birthday list or ^^N18>0^^ for an 
anniversary list. To make the list even more valuable, 
specify the 'sort" option, sorting the month/day field{field 1 6 
for birthdays, field 1 8 for anniversaries). Note: the report will 
not show a leading '0' in the date, e.g. '11 9' is really '01 19' or 
January 19. 

Using the ''Next Contact" year- mo nth-day field, you can 
generate a list of friends, family or clients you must contact 
in the near future. Numerically sorting on the "Next Con- 
tact" field in ascending order could produce a report show- 
ing the date, the person (o contact, and any references you 
made in the "Notes" field. 

In the "SEARCH CRITERIA", you can specify appointments 
on a specific date, between certain dates, before or after a 
certain date. Iffield^lOistheNextContactdate. then search 
criteria entries might be: 

Generating New Applications From Your Old File 

You can use the CREATE function in the CREATE/REVISE 
option to revise the screen and file design to suit other 
applications, such as a customer or client list. You would 
probably want to replace all the Christmas list information at 
the bottom of the screen with more appropriate customer 
client information. You might even want to add another 
screen. If you want to use some of the information from your 
Christmas list file, you can transfer data from one file to 
another using the 'Rearrange' function in the MANIPULATE 
FILES option. 


If you have questions regarding this application or you 
would like to submit your own "terrific" application, please 
write me a legible, coherent letter, including your phone 
number, and a self-addressed return envelope with stamp. 
If you submit an application, send it on disk or at least send 
screen dumps of the ENTER/EDIT screen, a hand-drawn 
report chart and any math and sample data. I will attempt to 
answer letters either directly or in this column. Write to: 
Don Bell, c/o The Transactor, 500 Steeles Ave.. Milton. 
Ontario, Canada, L9T3P7. 

P.S. I want to congratulate all readers who successfully 
developed this application. You deserve a "software perse- 
verance" medal! 

NlO-840508- May 8,1984 only 

N10>840418 AND N10<840508 - between April 18 and 

May 8 1984. 
N10> ' ' AND N10<840508 - before May 8, 1984. 
N10>840508-aflerMay8, 1984. 

Th« Ih'antactor 


Volume 5, Issue 01 


Four Wordprocessors 
For The Commodore 64 

George Shirinian 
Toronto, Ont. 

Photo by Roberto Portolese 

Easy Script. Commodore Business Machines, 3370 Pharmacy Ave., Agincourt, Onl,, Canada MIW 2K4, $99.95 

PaperClip 64 (version C). Batteries Included, 186 Queen St., W.. Toronto, Canada M5V IZL $149.95 

Script 64 (version 2.0). Richvale Telecommunications, 10610 Bayview Ave,, Richmond Hill, Ont., Canada L4C 3N8 

WordPro 3 Plus/64, Professional Software Inc., 51 Freemont St„ Needham. MA 02194, U.S.A. $69.95 


!t is seems that among all the applications for personal 
computers, word processing has been and remains the most 
popular. While owners of the Commodore 64 have been 
spoiled by excellent sound capabilities and arcade-style 
graphics, it might seem unreasonable to expect such an 
excellent games machine to provide word processing func- 
tions worth wriling about. There is the story of one wise guy 
who. when hearing about the wonders and benefits of word 
processing asked, "So what^s your highest score?". As the 

user base of the 64 continues to grow, however, more and 
more people are interested in being able to use their ma- 
chine for personal productivity. 

Having worked closely with the four programs described 
below, I can happily report that a high level of sophistication 
in word processing exists for the 64, All word processors are 
designed to do essentially the same job. They [acitilate the 
entering, deletion, rearrangement and printing of text. It is 
the special features which each program offers, therefore, 
that will receive particular attention in this review. 

Th« TraniGctor 




A program's manual should be not oniy a reference to the 
program's functions, but. ideally, should also provide the 
user with a tutorial on how best to use the program. Any 
codes or conventions (i.e.. ways of presenting information 
that are pecuHar to the document) should be pointed out 
right at the beginning. A thorough index by subject should 
make it easy to double check anything of which the user is 
unsure. Physically, the manual should lay flat for easy 
consultation while at the keyboard, and not be so cumber- 
some as to occupy the whole desk. Finally, the manual 
should be well-written and easy to understand. 

WordPro's manual comes in a well-produced, 3-ring 
binder. The 151 pages of instructions take a step-by-step 
tutorial approach and do not take for granted any previous 
computer or word processing experience. There were a few 
changes to the program since the manual that 1 received had 
been printed. These changes are listed in a 2-'page photo- 
copied insert, stuck in the inside front cover. Although the 
table of contents is fairly descriptive and there is a brief 
subject index. I found a number of functions that are not 
listed in either place (eg., assigning variable characters, 
duplicating lines). 1 also discovered functions the program is 
capable of. but that are not discussed at all. just listed in the 
summary (e.g., setting pitch, setting number of lines per 
inch). Otherwise, instructions are very clearly explained 
with good examples. 

Paperclip's manual is a well-produced, spiral bound book- 
let of 174 pages. It lays open easily and is compact on a 
crowded desk. It is clearly written and is easy for a novice to 
use. A 13-page tutorial comprises the first chapter, while 
specific functions are detailed in chapters 2 through 15. 
There are 25 appendices, covering topics from creating a 
printer hie to a summary of functions and commands, 
(Thank goodness in this second edition there is an appendix 
listing functions in alphabetical order!) A 7-pagc subject 
index completes the volume. Overall, the manual is thor- 
ough and rates an ^'excellent". 

The author of the ! 39-page manual for Script 64 must be a 
good student of human nature. 1 thought to myself, as the 
hrst section is entitled 'load Script 64 and Start Typing", 
This section is for the impatient new user who wants to try 
the program out before studying the instructions, but it is 
then too bad that no mention is made until Section 2, that a 
''dongle" must be inserted before the program can be run. 
The rest of the manual is a careful, step-by-step guide to the 
program's functions. The references in the Table of Contents 
are to chapter and section, which are in the text, and not to 
page numbers, so it takes an extra bit of looking to find the 

information you want. There are 4 appendices for technical 
information about the program and a 7-page subject index, 
again by section number. Some numbers in the index do not 
match the numbers in text, e.g., for "Quitting". In any case, 
the subject index is a bit uneven and some topics are not 
detailed there. The manual is bound in such a way that it 
does not easily lay flat on its own. 


Easy Script's manual is easily the most attractive of the four. 

Physically, the book is coil-bound on the slightly larger "A" 
size paper standard in Britain (roughly 8 1 /2 by 1 2 inches). 
The print is large, well-spaced and easy to read. Divided 
into two sections, the manual's first half is an introduction 
and tutorial, while the second comprises a reference guide. 
The 48-page tutorial section does not cover all the functions 
of which Easy Script is capable, but is clear, explicit and 
good for novices. A 5-page subject index makes the man- 
ual's contents readily accessible. A handy reference card 
listing functions and commands and which fits neatly into 
the disk jacket is provided. Also included were 2 separate 
pagesof instructions, dated July 14/83, on using Easy Script 
with various printers and interfaces. 

Copy Protection & Customer Protection 

There are 3 basic methods of copy protection in the world of 
microcomputers- One is to require a chip or ''dongle" to be 
inserted somewhere in the computer. The program checks 
for the presence of the "dongle" and refuses to continue if it 
is not present. Because the dongle is very difhcull for the 
average person to copy, the software producer can afford to 
make the disk fully copiable. This is a great benefit to the 
software owner, as he can keep copies on a number of 
working disks and also be assured of having a backup copy 
safely put away, 

A second method of protection is to change the order of the 
tracks on the disk. The disk is encoded with instructions 
telling the head where to find the information it needs on 
the disk, but this information is not accessible when using 
the Copy or Backup commands. This means that once your 
disk wears out or is damaged, you will have to pay for a new 
copy. Some companies will sell a backup for a fee, but this is 
still a great inconvenience. 

The third method is my personal favourite: no protection at 
all! Unfortunately most companies have found it very un- 
economical to rely on the honour system, su we are stuck 
with the ever-increasing prevalence of copy protection 

WordPro and Easy Script use the disk-encoding method of 

Th9 Transactor 


Volume 5, Issue 01 

copy prelection. Professional Software will provide a re- 
placement copy for a damaged disk "within one business 
day at the appropriate exchange fee and return it to you via 
First Class Mail". Easy Script provides 2 copies of the disk in 
the package when you buy the program. 

PaperClip and Script 64 use a ^'dongle" that plugs into 
joystick porf *L This allows backing up the disk. (By (he 
way, do not be surprised if the Backup command does not 
work on your dual drive with the Paperclip disk. 1 had to use 
Copy to transfer the files onto an already formatted disk.) 

Batteries Included and Richvale both continually revise and 
improve their programs. Both will update your disk at no 
charge if you bring it in and will sell you an updated manual 
for a nominal fee. While the method of providing for people 
who live outside of the Toronto area is mentioned by 
neither, 1 trust that some provision for exchanging disks by 
mail can be made. 

The policy of continually upgrading programs and providing 
ongoing user support is to be strongly encouraged and 
companies that offer this should get full credit. 

Size of Text 

One of the big advantages of the 64 is its 39K of RAM 
available to the user. This allows reasonably large text files, 
as all of the programs here access data from RAM only. This 
is unlike other popular software, such as WordStar, which 
keep a file to disk open during editing, and therefore can 
have files as large as the disk's capacity. The disadvantages 
to keeping a file open to disk, however, are a great reduction 
in speed of access to the data, and great vulnerability to 
disaster should there be any interruption of power or the 
computer freezes up. 

Using a simple formula based on average real-life use, a 
rough indication of the practical capacity of each program is 
offered. 1 screen line = 40 characters, 5 characters = 1 
word, 40 characters = 8 words per line, 425 words = 1 
printed page- 
Easy Script allows 764 lines of text, which equals about 14 
printed pages, 

PaperClip allows 520 lines of text, about 10 printed pages. 

Script 64 presents its text in ''screens" of 22 lines each. Forty 
such screens are kept in memory at any one time. Forty 
screens contain 880 lines with the equivalent of roughly 
16.5 printed pages. 

WordPro contains a maximum of 329 lines of text in main 
memory, plus an additional 23 lines, minimum, in "extra 
[ex\^\ The user is presented with the option of selecting the 
number of lines of text desired in main memory (minimum 
1 79, maximum 329J, Lines fewer than 329 are automatically 
assigned to a reserved area of memory called "extra text'', 
which can be accessed independently of main text for such 
things as viewing a disk directory without erasing text, 
appending paragraphs, etc. This works out, then, to approxi- 
mately 6 printed pages. 

Note that the above figures are for 40-coiumn video mode- 
Easy Script, PaperClip and Script 64 support video displays 
of greater than 40 columns, at the user's discretion. (More on 
this later.} In 80-co!umn display mode, the number of lines 
of text is halved, but since the length of the lines is doubled, 
the amount of data remains the same. 


All four programs use the "wordstream" method of entering 
text. This means, simply, that as you type out your words, 
they go onto the screen in one continuous stream. You do 
not end at the edge of your screen and hit return the way 
you would with a typewriter. The program assembles the 
words and makes sure each line ends with a whole word 
intact during output. You need press return only at the end 
of a paragraph. 

Wordstream differs from the method of other popular pro- 
grams, again, such as WordStar, which offer what is called 
"word wrap". Word wrap allows you to see on the screen 
exactly what you will see on paper. As you type, the 
program rearranges the words on screen before your eyes. 
This method is a little slower than wordstream, and 1 have 
heard the occasional person complain that it is distracting to 
have the text constantly moving around- 

To be honest, however, it is very advantageous to know how 
your text will look before you go to the trouble of printing it 
out on paper. Three of the programs, Easy Script, PaperClip 
and Script 64, offer an output to video mode that allows just 
this. By outputting to video, you can see your text scroll by 
just as it would print out on paper Since most writing is 
conventionally formatted to something wider than the 
40-column display of the Commodore 64, these programs 
have made provision for horizontal scrolling in addition to 
the familiar vertical. Thus you can see your text, 40 columns 
at a time, up to 250 columns across, in the case of PaperCli[j, 
240 in the case of Easy Script and 80 for Script 64. This 
facilitates the preparation of tables and charts especially. 

The Transactor 


Volumo 5, lisue 01 

In addition to the horizontal scrolling facility, two of the 
programs, PaperClip and Script 64 offer true 80-column 
display (at one time) in all modes, PaperClip has an 
80-column version of the program on the disk that is 
designed lo work with a hardware adaptor, such as the 
Data20 Video 80 Pak and Batteries Included's own Su- 
per-80 Pak. The Script 64 disk also includes a version that 
produces an 80-co!umn display via software, with no ad- 
d-ons required! While this is a little difficult lo read, it does 
really work. 

All four programs use the same style of status line display at 
the top of the screen in lieu of a more descriptive menu. 
Single letters on the status line are highlighted when you 
press the appropriate key or combination of keys to put you 
into one of the editing modes. This does require some effort 
on the part of the user to learn the numerous codes and key 
combinations. The status line also di.splays such informa- 
tion as line and column position of the cursor. 

Table 1 lists most of the major editing functions available 
with a "y" under the name of those that offer them. Since 
most of the functions are common to all, let us look briefly at 
those which are less common. 

Auto scroll, or "panning" as it is called in ihe Easy Script 
manual, allows the sybarites among us to view the text 
scrolling by without holding down any keys. Holding down 
the space bar in Easy Script increases scroll speed. Pressing 
any key in PaperClip halts the scroll, pressing any key again 
resumes it. 

Erase from cursor to end of paragraph. This function, 
unique to Easy Script, does not close up the text when the 
lines are deleted. Instead, it leaves the space blank, presum- 
ably to be filled in with new text. 

Erase screen. This function, unique to Script 64 simply 
clears text from the present screen of 22 lines. It is most 
appropriate to a screen-oriented program like Script 64. 

Erase without deleting space. Part of "erase from cursor lo 
end of paragraph", discussed above. 

Go to specific line. Particularly useful with long text files 
where scrolling would be time consuming. This command 
could at least bring you near the spot you were interested in. 
even if you did not remember an exact line number. 

Hyphenation. Script 64 will break a word longer than 6 
characters in a relatively appropriate place when in auto- 
matic hyphenation mode, but is not always grammatically 
correct. The manual advises viewing the results during 
output lo video first. If a hyphenation needs fixing, you can 
manually insert a "-" al which point the program will then 
hyphenate. The other programs leave it up to you to set 
where the break may occur and make their contribution by 
looking after whether a break is needed or not. 

Linked phrase (hard space). Sometimes there are words that 
you do not want separated on two lines on the printout. This 
function ensures that the linked words remain on the same 

Bottom of text- It is often desirable to jump right to the end of 
your text, say when you have just loaded a file and want to 
pick up where you left off last time. 

Math functions. In addition to the traditional adding of 
columns, PaperClip also adds numbers in rows across the 

Breakpoint is unique to PaperClip, This function breaks up a 
word at the end of a line without inserting a hyphen. 

Copy phrase. Easy Script and WordPro do not allow you to 
replicate less than a full line of text elsewhere in your 

Defined keys. Being able to assign your own values to 
certain keys, often called "macros"^ is a great advantage. If, 
for example, there is a name or phrase that has to be 
repeated many times throughout your text, you can assign it 
to a couple of keystrokes, saving much time and effort. 

Erase from cursor to bottom of text, it is worth mentioning 
that PaperClip erases not from the cursor position in this 
mode, but from the beginning of the line on which the 
cursor sits. Many times this is not what you would intend. 

Move column. PaperClip has the unique ability to relocate 
an entire column to another location on the screen. It also 
allows you to erase a column without disturbing surround- 
ing text. 

Recover deleted text. Script 64. by virtue of its screen-o- 
riented handling of text, is able to store in a buffer data that 
has been deleted. If you change your mind after deleting or 
rearranging some words . pressing the Shift and Back Arrow 
keys will restore the screen just as it was. 

Set case of phrase. This useful function allows you to switch 
an existing portion of text from lower to upper case or 
reverse, without retyping it alh 

Sorting, PaperClip allows you to sort columns into ascend- 
ing or descending order. This can be done for a column 

The Tronsactor 


Volume 5, Issue 01 

width of your choosing and without disturbing surrounding 
text. The speed of the sorl slows down considerably with 
wide and long columns. 

Spelling checker. Script 64 provides on the same diskette as 
the word processor, a spelling checker program. With this 
you can review your text for any misspellings or typographi- 
cal errors before committing it to paper for a really perfect 
job! The program allows you to build a dictionary based on 
your own word usage. The more you use it, therefore, the 
larger it becomes. This dictionary must be maintained on a 
separate disk, unless you use the 8050 or 8250 drives. 
Spelling checker programs are great for the really miserable 
speller or typist, but do take some extra time to use and 
maintain. They are fairly popular, however, and sell sepa- 
rately for $50.00 or more. The inclusion of one with this 
program is a real bargain. 

Tabie of contents. This is a rather neat feature for the book 
or manual writer. With the proper format command beside 
your chapter or section headings, plus the page number on 
which it occurs. PaperClip saves this information to a disk 
file when you do an output to video. The program is careful 
to gather this information only during the first pass on 
output. When the entire book is finished, you load in the 
file, format it and you have a table of contents all ready. 

Word count. This feature, unique to PaperClip is a real 
blessing for writers. During output to video or printer the 
number of words in the file is displayed on the status line. 
Students who must write a 3000-word essay now can have a 
clearer idea of where they stand. Authors asked for an article 
"not to exceed 1500 words'' can now stop fretting. And 
freelance writers who are paid by the word can now be sure 
of how big a cheque they can expect! 

WordPro is the grandaddy of word processors for Commo- 
dore computers. Consequently its editing and formatting 
conventions have become more or less standard. Script 64 
uses a unique approach to the handling of data. First of all, 
formatting is handled by control maps that set margins, page 
length, etc. These control maps are accessed in separate 
screens outside of the text. 

As mentioned earlier, Script 64 accepts text in distinct 
screens. This has the advantage of allowing you to retain 
chunks of data separate from the rest of text and print them 
out in different documents or places. There is a significant 
disadvantage, however, in that you have to manually ad- 
vance to the next screen by pressing the Fl function key 
every 22 lines. 1 found myself typing away and forgetting 
this limitation. Some of my words were lost before 1 looked 
up and realized it. Although the program does display the 

word 'TIMIT^' and provide an audible alarm when you 
reach the screen's limit, 1 am a touch-typist and am not used 
to not watching the screen at a!! times, 1 also prefer to keep 
the 64's sound off while word processing. Others may not be 
bothered by this. 


Of course the goal of word processing is to get your words 
down on paper, so the program's ability to support your 
printer is very important. Many printers have very sophisti- 
cated capabilities that must be addressed by the software via 
control codes. 

There are two different approaches taken by these four 
programs. WordPro and Easy Script address the printer from 
within the program. They are particularly designed for 
Commodore printers. ASCI! printers are supported gener- 
ally, but any special control codes must be specifically 
embedded in text by the user. Script 64 has a number of the 
most popular printers already configured in its program, 
but, like PaperClip, also uses separate printer files that are 
loaded into the program. This latter approach allows a high 
degree of customization for your particular printer. Paper- 
Clip offers dozens of printer files on its disk for many 
popular models, and, along with Script 64, provides special 
programs with which you can create your own file and 
merge it permanently with the word processor. 

Table 2 lists most of the major printing functions these 
programs offer. Some of the more interesting ones are 
commented on below. 

10, 12, 15-pitch- Script 64 will produce only 10-pilch on 
Epson printers. In 10-pitch it does a bold print that is 
certainly attractive. When you select !2 or 15-pitch, how- 
ever, you are given normal 10-pitch. 

Characters not on keyboard. Certain commonly used char- 
acters, such as the cent sign, do not exist on the 64's 
keyboard. These are accessible by assigning Iheir ASCII 
value to a specified key. Each program handles this impor- 
tant function slightly differently, but they all work fine. 

Continuous printing. Easy Script and PaperClip have an 
extra feature of changing to continuous printing in the 
middle of a run when you did not specify it at the beginning. 

Device number. Easy Script allows you to have more than 
one printer connected. (Some interfaces allow this very 
conveniently). Since two devices can not have the same 
number, you can change one of them from within the 

Th« Tron factor 


Volume 5, Issue 01 


Double spacing. While all of these programs provide a 
command for double and triple spacing, none offers 1.5 
lines at a time without having to change the control code for 
number of lines per page. Although many daisy-wheel 
printers can be set manually to 1 .5 spacing, most dot-matrix 
units require this to be set via software- 

Paragraph indentation, PaperClip and Script 64 allow you to 
set the number of spaces fhe beginning of a paragraph will 
be indented during print-out, even if it was not indented 
during editing. 

Paragraph spacing. Script 64 allows you to select the num- 
ber of blank lines between paragraphs during printout, even 
if none were entered on the screen. 

Double strike. By passing over the same line twice, a darker 
and bolder impression can be made. This is useful for 
headings or when emphasis is desired, or when a single 
pass just does not seem dark enough- (Maybe it s time to 
change your ribbon!) 

Foreign characters. Many dot-matrix printers allow you to 
print non-Knglish characters. PaperClip gives you the abil- 
ity to create your own printer files in which you can define 
specific characters of any type. In order to see these charac- 
ters on the screen, (e.g., the Greek alphabet), you must use a 
character set editor, available separately from other sou rces. 
As a convenience, a file to display the several distinctive 
French characters on screen is included on the disk. To 
invoke these characters you simply press the back arrow 
followed by one of the number keys. 

Script 64 provides French characters as part of the main 
program, via the function and "@" keys. Printer support for 
French is offered from the printer menu, providing your 
printer is capable of generating the various accents, etc. 
Other alphabets are not supported- 

Lines per page. PaperClip has a bug in that it does nut count 
the number of lines per page correctly when a "header" 
command is used and the header is followed by a number of 
blank lines, e.g. hd4:TITLE. It goes ahead and prints the 
number of lines specified in the format line, e.g. pg55, but 
ignores the 4 blank lines that are specihed after TITLE. 
Unless you adjust for this yourself by reducing pg to 5 1 , your 
page will be too long- 
Offset. This command allows you to shift the printing to the 
right if it does not fall just where you want on the paper- This 
saves you from having to reset the margins or physically 
shifting the paper. Easy Script's manual suggests using this 
facility for printing in columns by putting the same piece of 
paper through and printing out the text in several passes, 
shifted over each time. 

Page length ignore. If you are printing a rough draft, it may 
not be important to you if the printing goes right over the 
perforation in your pin-feed paper. This function ignores 
the page length setting. 

Semi-Proportional spacing. When right iustifying text, most 
programs pad out each line with extra blank spaces between 
words. This can look sloppy under certain conditions be- 
cause some words will have a normal single space between 
them while others will have several. Typographers have 
long had a scheme to measure the distance between letters 
and words in ^'micro-spaces". Although the space between 
letters is always the same, PaperClip is able to use these 
micro-spaces to pad out the blank space evenly between all 
words on a line that is right justified, giving a more profes- 
sional and eye pleasing appearance- Few printers available 
for microcomputers offer semi-proportional printing, but 
PaperClip will support those that do. 

Ragged left- You are given the option to iustify the text on the 
right side only, and have the left side of the page uneven. 

Reverse. Easy Script is capable of producing reverse field 
characters on Commodore dot-matrix printers. 

Shadow- During a second pass over the same line. Easy 
Script will strike over the text but shifted slightly to the right, 
leaving a tiny bit of white showing between the two sets of 
characters, creating a ^'shadow'' effect. 

Underlining. It is worth noting that PaperClip has 
command to underiine a blank soace. as for 

Underlining. It is worth noting that PaperClip has a special 
command to underiine a blank space, as for creating a line 
for a signature, in addition to underiining characters. There 
can be some difficulty underlining a blank space in some of 
the other programs- 

Take note that WordPro will work with printers attached 
only to the 64's serial bus. The other programs will support 
serial, parallel and IEEE printers which have been property 

File Handling 

Although it has become something of a cliche that to have a 
really serious computer system you must have disk storage, 
Easy Script, PaperClip and Script 64 allow the tape user to 
enjoy the benefits of word processing, as well as the disk 



Volume 5, l»iue 01 

Of course all programs musi be able lo load and save files, 
but other disk commands are not always allowed, and when 
they are. it is not always in normal Commodore syntax. 
Table 3 lists the disk commands supported by each pro- 
gram. Below are some comments on a few of them. 

Change device number. PaperClip allows you to set the disk 
device number if you are using a second drive, or if you 
have one with a device number other than 8. 

You can not call up a directory of your disk in Script 64. In 
order to know the contents of the disk, the program requires 
an index file to be created by the user. Furthermore, the 
program stores its data in files automatically labelled '^A", 
"B", etc., so. in the absence of recognizable file names, the 
user must also keep, manually, a separate list of what each 
screen contains. 

When Easy Script and WordPro load a directory, it over- 
writes all other data in memory. If your directory is the right 
size, you can load it into WordPro's extra text area safely. 
Even though PaperCiip loads a directory without disturbing 
the data in memory, the way the directory is loaded does not 
allow it to be printed out. 

In order to minimize the possibility or read and write errors, 
WordPro allows you to initialize the disk drive at any time. 
This is especially valuable if you change disks during a 
session, Por those using programs that do not offer this 
feature, I would sincerely recommend reading a disk's 
directory the first time you insert it. to give the drive a 
chance lo initialize, 

WordPro's conventions have more or less become the 
standard in many cases. One of the most visible is the way it 
saves data as program tiles. This is not the place to go into a 
technical discussion of file handling, just recognize, for now, 
tha( program files are different in nature from sequential 
files. Now, many other types of programs, e.g., mailing list 
handlers and database managers, save their data in sequen- 
tial hies. Sometimes you would like to lake data from, say, 
your mailing list and incorporate into the text of a letter. 

There are Iwo ways of doing this. With Easy Script and 
PaperClip you could simply merge the desired sequential 
information directly into memory. They also allow you, 
while WordPro requires you, lo read information from a 
sequential file, one field at a time and print il out as a 
variable block of information. In this case the two files are 
merged during printing, but not into one new file. Con- 
versely, you can also save data from Easy Script, PaperClip 
and WordPro as a sequential file that can be loaded into 
another program or transmitted via a modem. Script 64 also 

provides the variable block function, and, in addition, has a 
separate utility program to convert an sequential file so that 
it can be loaded into memory. 

When discussing the compatibility of files, it is worth men- 
tioning here that many programs over the years have made 
efforts to be WordPro compatible. PaperClip uses WordPro's 
custom of saving program files, and reads WordPro hies. It is 
incompatible with WordPro, however, in the following 

Certain embedded formatting commands can be linked on 
the same line, separated by a colon, in any order in 
WordPro. PaperClip requires some of these commands to be 
the first on the line or it does not recognize them. e.g. cnO to 
turn centering off. It is a simple mauer to go into a file and 
make the appropriate changes throughout, but an extra 
chore, nevertheless, 

PaperClip saves some extra information in the way of screen 
tabs and other screen information that appear as miscellane- 
ous characters when loaded into WordPro. There is a forced 
indentation of 21 blank spaces at the beginning of each 
paragraph that have to be manually deleted. Thus, while 
PaperClip is able to read WordPro Hies with a minimum of 
difficulty, it has been made very inconvenient for WordPro 
to read PaperClip files. 

Other Features 

PaperClip is programmed to work with The ARBITER and 
other multiple computer systems. WordPro provides a 
printer spooling feature that has particular application in a 
multi-user environment. 

Easy Script has an additional utility program that relocates 
the 64-Link so that it does not interfere with the word 
processor. Pull instructions are included. 

In addition to the spelling checker program mentioned 
earlier. Script 64 also includes the RTC Scratchpad mail list 
and database management program. 

Error trapping is an important consideration when judging 
any program. All four of these packages provide generally 
excellent error trapping. Unfortunately, Script 64 will lock 
up irretrievably if you attempt to output to a serial printer 
when one is not connected. 

Th9 Tronioctor 


Volume 5, Issued 

TABLE 1 : Table of Editing Functions 

TABLE 2: Table of Printing Functions 

Easy Paper Script Word 
Script Clip 64 Pro 

Easy Paper Script Word 
Script Clip 64 Pro 

Adjust screen colour 

Auto page numbering 

Auto scroll 

Bottom of text 



Copy line 

Copy ptirase 

Defined keys 

Delete line 

Delete word or phrase 

Delete sentence 


Erase from cursor to bottom 

Erase from cursor to end of 

Erase screen 

Erase without deleting space 
Fast scroll 
Forced page 
Global search 
Global search & replace 
Go to specific line 
Insert mode 
Insert line 
Linked phrase 
Margin release 
Math functions 
Merge or append files 
Move column 
Move line 
Move phrase 
Move text to another file 
Next screen 

Numeric tabs (decimal justific) 
Previous screen 
Recover deleted text 

Search & replace 
Set case of phrase 
Shift lock 

Spelling checker 
Table of contents 

Top of screen 
Top of text 
Word count 


































ASCII printers 



Characters not on keyboard 

Continuous printing 

Device number 

Double spacing 



Foreign characters 

Headers & footers 


Line feed option 

Line spacing 

Lines per inch 

Lines per page 

Linked files 

Mail merge (variable blocks) 

Multiple copies 


Page length ignore (rough draft) 

Page numbering 

Paper length 

Paragraph indentation 

Paragraph spacing 


Print characters not on keyboard 

Print selected pages 

Ragged left 


Right justification 

Semi-Proportional spacing 


Superscipl & subscript 

Supports non-Commodore printers 

Triple spacing 


Vertical positioning 


























Th« Tran factor 


Volums 5, ttsua 01 

TABLE 3: Table of Disk Functions 

Easy Paper Si:ript Word 
Script Clip 64 Pro 






Change device number 















Error messages 




Header (format or "new") 









Load prgfile 





Load seq file 




Pattern matching of file names 












Save prg file 





Save seq file 








Select drive number 










As was said before, this review is not Intended to be 
competition. Each has its own pros and cons, and I certainly 
have my prejudices. It is very difficult to give the "feel" of a 
program in print, and so difficult to make recommendations. 
] would like to make some general suggestions, however, on 
whom each program may be most suitable for. 

Basy Script uses a few major, non-standard format charac- 
ters, although it is very similar in feel to WordPro, It is a 
straightforward program with some nice features, but miss- 
ing others, such as arithmetic functions, its documentation 
is geared for the novice and 1 also would recommend it for 
home or personal use. 

PaperClip is the most so[>histicatecl of these packages, the 
most replete with features and thus the most "professional" 
in feek It has many unique features and is geared to the 
writer who does his text creation at the keyboard, rather 
than copying hand-written notes. There is a significant bug 
in a common command as discussed earlier. The manual is 
excellent and suitable for all levels, as is the program. 

Script 64 is unique in its approach to handling data in 
screens. It is strange to compose text at the keyboard and 
have to remember to manually advance every 22 lines. This 
screen-orientation does make the handling of certain kinds 
of data better, and it can function as a free-form database 
with full word processing capabilities, something unique on 
the market. On the whole, however, ! find the program 
complicated to use, and although the manual is thorough, it 
is not well indexed, which makes using the program all the 
more difficult, it has a significant bug in its printer output 
that will affect users of the popular Epson line of printers.. It 
does contain a built-in optional 80-column display, spelling 
checker and database prugram which make it quite a bar- 

I find WordPro the most straightforward of the programs, 
but I will acknowledge up front that I have been using one 
version or another of this program for a few years and so 
have some biases. It is the easiest to learn, in my opinion, 
one of the simplest to use, is bug-free and its far-sighted 
error-trapping has saved my bacon on more than one 
occasion, ll has long been marketed as a business tool, 
although it was quickly adopted by Commodore users of all 
types when the first version for the PET came out. it would 
certainly be perfect for use in an office environment, particu- 
larly by people who were more interested in transcribing 
notes than every fancy feature and consequently having to 
figure out how the program is supposed to work. Its low 
price makes it especially attractive, although the inability to 
back it up makes me more than a little nervous. 

It is important when judging any software not to be over- 
awed by all the features any one program may have. Any 
word processing program intended to be competitive in 
today's market must have them. Look, in addition, at such 
qualities as ease of use, error handling and customer sup- 
port. Hopefully this article has given you enough informa- 
don to make a happy choice for your particular needs. 

Tha IVansGCtor 


jtoluffie 5, l»y 01 

The New 
Commodore Computer 

Colin Thompson 
Santa Monica, C A 

Originally called the 'TED", Comniodores* new 264 and 364 are their latest entries, 

Commodore has finally given us a new computer. The long 
awaited event look piace at the Winter Consumer Electronics 
Show in early January, The C264 is not an enhanced C64, but a 
completely new machine geared for the home market. The new 
8-bit machine, announced amidst much hoopla and fanfare, will 
feature "built-in software", on ROM- 
Commodore has gone to outside sources for much of the new 
software for the 264, When the new computer is released this 
spring, you will be able to buy several versions of the 264, 
depending on which software package you want '^on ROM", The 
final selection of which programs go on ROM has not yet been 
made, but likely candidates include: 

Word Manager/Plan Manager by Data 20 
Magic Desk by Commodore 
3-IN-l by Trl Micro 
Superscript 264 by Commodore 
Logo by ?? 

The idea behind the 264 is simple: If you are going to be using the 
computer for wordprocessing, then buy a 264 with a built-in 
word processor. At CES, Commodore brandished the word "Pro- 
ductivity" like a club. New 264 owners should be able to plug in 
the computer and immediately begin writing letters to the editor 

on the built-in wordprocessor. But you say, "What if 1 don't like 
their W/P?" You will be able to purchase a stripped down 264 with 
no added ROM programs. What you'll get is a 40 column, colour 
computer with 60K of available RAM, BASIC 3.5 with over 75 
commands, hi-res graphics in 128 colours and a 32K operating 
system in ROM, But wait, there's more. Did I mention speed? It's 
faster than the VIC, which is faster than the C64. The 264s new 
parallel disk drive is about 3-4 times faster than the old l54TThe 
new computer will not have a SID chip or sprites. 

BASIC 3.5 contains several new commands in all areas including 
editting, program structure, graphics, disk operation, I/O, and 
machine language. Here's a summary: 


The 264 has new cursor controls that are arrow shaped keys and 
seperate from themain keyboard unlike former models, 
FIND/CHANGE - search or search & replace BASiC text 



-auto line numbering 

-delete BASIC lines up to line 10. parameters 
work like LIST. 

- hi-lites error in RVS field 

Th« Trantoctor 


Volume 5, Issue 01 


TRAP 1000 

all must be on same line 

equivalent to ON ERROR GOTO 1000 

can be followed by WHILE or UNTIL 

terminate loops 
insteadonOGETA$:IFA$ = "^'THEN10 


The 264 contains most, if not all, of the VSP commands you can 

buy on cartridge from Commodore for the VIC and the C64, plus 

some extras. 

FLASH -flashes strings 

COLOUR - sets background, multi-colours, etc., AND luminance 

GRAPHIC -sets hi-res, multi-colour, or text screen, including 

combinations, can set hi-res/multi-colour at top plus 

5 lines of text screen at bottom. 
SCNCLR -same as print chr$(147) 

CHAR - CHAR X, Y, -STRING" will print ''STRING" at an X,Y 
position on the hi-res screen, very handy. 

LOCATE - will plot a pixel at X,Y 

DRAW - for drawing lines, just like VSP 

SSHAPE - Save Shape will store a limited area of the screen into 
a string variable. 

GSHAPE - will get a shape from a specified variable and print it 
on the hi-res screen at X,Y 

SOUND - single voice, followed by parameters for note, tone, 

JOY(N} - reads joystick port 1 or 2 and returns a number from 


Macliine Language: 

The Machine Language Monitor has some additions as well as 

some new BASIC commands to do conversions. 

DEC - DEC 'TFFF" converts the string FFFF to decimal, varia- 
ble can also be used. 

HEX$ -HEXS(1024)convertsthe number 1024 to a siring repre- 
senting the hexadeciaml equivalent, the two comple- 
ment much like ASC and CHR$ 

MLM .F - Fill memory from ADDRl to ADDR2 with specified hex 

.H -Hunt memrory 
A - Assemble, works like Supermon assembler 

,D- Disassemble 

,M - Memor>' dump displays memory contents in hex and 

screen POKE characters, much like Interrogate in Ex- 
- ,G, .X, .S, .L, -R are still the same horn earlier MLMs 

Disk Operating: 

The 264 has most of the disk commands from BASIC 4.0. For some 
reason, though, the DOPEN command is missing. 

{The operating system supports more commands than listed here. 

We'll bring you more information as release version manuals 
become available. - Ed.) 

Several new peripherals will accompany the 264 including a letter 
quality and dot matrix printer. A new colour monitor, the 1 703, is 
merely the 1702 in a new black case. This too is the only difference 
between the new C1542 and the 1541 . but a new faster disk drive, 
the SFS 4Sl another 264 peripheral The 1531 Datasetle is the 
same unit with a new plug, useable only on the 264. The 264 
Modem is supposed to be auto answer/auto dial. Rounding out the 
hardware end of the computer is a new plotter. 

Software compatibility will be a .sore spot with new owners of the 
264. VIC and 64 cartridges won't work. Most existing programs 
won't work either unless they are pure BASIC. The problem lies in 
the system's electronic architecture. If you know the difference 
between an operating system and an operating table, you may be 
wondering how an 8 bit microprocessor can address 64K of RAM, 
32K of 0/S ROM and an additional 32K of program ROM. The feat 
is accomplished with a sleight of hand called '^bank selected 
memory". The 7501 Microprocessor can only "see" 64K of any- 
thing at once, but with careful memory management, it can switch 
in (or out) different blocks of memory so the total of 64K is never 
exceeded - 

The bank selection process is done automatically so you don't 
have to worry about it. Long-winded programmers will now be 
able to write programs (in BASIC, MX., or both} of up to 60K in 

The 264 is the first of four New Generation computers due for 
release this year.. The next one, the 364, was shown at CES but it 
looks like it will be summertime before it makes a market appear- 
ance. The 364 is architecturally the same as the 264, but has an 
extra 19 key numeric pad, a few more empty sockets inside for 
software ROMs, and built-in speech with a 250 word vocabulary. 

Pricesandreleasedatesarenotyet firm, hut the 264 should be in 
the $400-600 US. range. 

Editor^s Note 

The new C264 and 364 are an interesting progression in the 
Commodore evolution. No sprites, no 3 voice sound, yet very 
powerful. Perhaps they're leaving that combo for the next step. 
Whatever the case, the 264 will fill another gap. The added 
memory, commands and display features will give a new look to 
Commodore business software, especially the luminance control. 
It's compact, inexpensive, and ROM software will make it conven- 
ient. The Commodore 64 will remain the superior games machine 
but the SSHAPE; GSHAPE and the other VSP commands will 
produce some handsome graphic control. It almost seems like 
Commodore has omitted the advanced graphic and sound capabil- 
ities to avoid instilled anxiety in potential business software writ- 
ers. I suppose only time will tell how well they'll get along together 
as a family. 

Tho Tronscictor 


Volume 5, Issue 01 

Subroutine Eliminators 

Hello again, here is my second article in which I expose 
some little known Commodore features or POKES which 
have been around for years, but nobody has chosen to 
discuss them- Last month, I threw in my two cents worth by 
offering a one line alternative to everyone else's alternative 
to Commodores input statement. It was worth buying a 
back issue if you missed it. (Really! I know they all say that.) 

Again this month, I won't let anyone down, lam supplying a 
one line routine which will eliminate entire routines- First, 
let's set up a scenario. Your computer is sorting 1 000 names 
using a simple shell sort, (Last month's example used a 
bubble sort but I graduated.) Your computer is going to be 
busy for some time and you just don^t have the time to sit in 
front of the screen waiting. What you need is a method for 
your computer to tell you 'TM DONE!''. Obviously the built 
in CB2 sound is the answer, but you really don't have the 
lime to program even a shnple beep. You have to set up the 
right values in the right locations and experiment till you get 
a nice tone, when what you are really hiterested in is the 
results of your sort and what to do next. 

There is the problem, now for the answer. Ideally, it would 
be nice to get a nice ^'DING-A-LING-A-LING'' just like the 
one you get when you turn on the computer, right? You can, 
without knowing anything about programming. All you 
have to be able to do is print a reverse field G. It is simple to 
do. Type in PRINT, followed by two sets of quotation marks. 
Then, delete the second set. Now touch the RVS key. If you 
did everything right, a reverse R should not appear. Now 
simply touch the G key, or the Shifted G for a little longer 
beep. When you hit return, you should here a beep. If you 

Jeff Goebel 
Acton, Ont. 

want a longer tone, type several G's together. Couldn't be 

1 can go one step further if you own a Commodore 8032 or 
SP9000. First, you need not bother with the second set of 
quote marks. Touching the ESC (Escape) key , lakes you out 
of quote mode - hit RVS to engage reverse field characters 
and type the G or shifted G key. Further, on these computers 
you can control the length of the beep. Try the above 
routine. Then POKE 231,255 and try it again. This time the 
tone will take a much longer time to finish. Experiment with 
values from to 255. For example; 

i0forj = 0to255 

30 print j; "In" 
40 next 

The location 231 on the 4032 creates a really bizarre side 
effect, much like the sort of thing Karl or Richard might 
publish in their ''Bits And Pieces'' section. It creates sort of 
an anti-window with text. Experiment if you like, but if it 
wrecks your computer, I didn't tell you. Just kidding of 
course.., simply power down toget back to normal. 

One last note on the subject... the concept of printing a 
reverse G is sometimes referred to as "Control-G". Sending 
a Control G is virtually an industry standard among com- 
puters that host some kind of beeper at the keyboard- So if 
you want to write software thai is transportable between 
different brands of computers, Control G is a fairly safe way 
to create a beep for the user, even while telecommunicating. 

[ Thg Transqctor 


Volumes, Issue 01 

A Quick Musical Tour 

With this issues* theme of graphics and sound, what better occa- 
sion could be found to write a quick lour of musical concepts. Most 
people, at one lime in their lite or another, have had at least a small 
urge to know a bit more about musk and the concepts behind it. 
Everyone who has ever debated doing anything as major as 
designing a music synthesis system, or as minor as trying to hear 
their computer make some form of noise, have felt it in their best 
interests to become slightly knowledgeable in the concepts of 
music. Well, sit back and enjoy. The reading that you are about to 
do has been written with you in mind. No mind boggling terms will 
be stressed, just basic concepts to whet your musical appetite 
sufficiently for future research. So, with that introduction out of the 
way, I welcome you to a quick guided tour through the concepts of 

You have been transported to ESP studios, and are now sitting 
behind a beautiful ebony Grand Piano that has been gratuitously 
donated for our use today, A quick look around the studio will tell 
you that the owners are in the business of making music and do 
very well in their occupation. Some of todays top name groups 
have passed through this studio on their way to musical millions, 
and now you can join their ranks, if you can just play the piano you 
sit behind. 

Cautiously peer down at the keyboard and try to get a bearing of 
how everything fits into place. You will notice that the white keys 
fall in exact sequence from the far left of the keyboard to the far 
right hand side. The black keys, in contrast, seem to appear 
between most of the white keys, but in a seemingly irregular 

What has been discovered is the first in a series of very important 
points. Each white key on the keyboard is referred to as a WHOLE 
NOTE, with the black keys being the FLAT'S and SHARFs of 
their respective WHOLE NOTEs. The keys to your left are referred 
to as the BASS or low notes, with the keys to your right being the 
TREBLE or high notes. Now, just in case everyone reading did not 
manage to get a seat at the piano, a small diagram of the keyboard 
can be found below. 

1 1 II I III I II I III I II ir 








As the diagram above shows, each white key has a note letter 
name aUached to it with the names ranging in sequence from A to 
G, then back to A again. What you have witnessed is the range of 
notes, A through G. in numerous OCTAVES, When two notes are 
one OCTAVE apart, this means that they have the same letter 
name but are either seven WHOLE NOTEs higher or lower than 
the other. If you were playing a C note on the far left side of the 
keyboard and were asked to raise the note one OCTAVE, you 

would leave that key and move seven white keys to your right to 
land on the next C note one OCTAVE higher. Pretty easy concept to 
grasp, so far. 

As you play on your new C key, one octave higher than before, a 
call comes from the control room to play a C SHARP for a few 
moments. Don't panic, aSHARP or FLAT, as mentioned earlier, are 
the black keys that fall between the white ones. A SHARP is 
usually the black keys that fall to the right of most of the white 
keys, with a FLAT usually being the black keys to the left of the 
white keys. The phrase, usually, will be explained further in a 
short while. If you were to do as instructed and played the C 
SHARP, you would notice that the tone is slightly higher than the C 
that you were playing. This increase In tone is called a SEMI- 
TONE, or one half of a WHOLE TONE. Press the white key just to 
the right of the C key for a second, and you will notice another 
slight increase in tone, or a raise of another semitone to become a 
WHOLE TONE. This is the D note. 

The explanation given above is sure to relieve numerous ques- 
tions in your mind right now but a very large one should remain. 
Earlier you have discovered that the sequence of black keys in 
relation to the white ones are in a rather irregular order, and you 
also picked up on the fact that I said usually when explaining the 
FLATS and SHARPs to you. This is due to the fact that, when the 
keyboard was originally conceived, a few black keys were left out 
for some purpose I have never been able to figure out. This should 
have lead to a large musical void in composition, but it hasn't. This 
drawback has not appeared to hinder one composer through time, 
so it shouldn't affect us now. 

The keys affected by this strange turn of events are the B, C, E & F 
keys. To compensate for this loss, the white keys are used in place 
of the blacks. For example, a B SHARP is a C, with a C FLAT being 
a B. An E SHARP is a F, with a F FLAT being an E. Strange but true, 
and a musical fact of life for all time to come. 

Now, if you were to look up from the keyboard for a few moments, 
you will notice that Dee, of ESP, has placed some sheet music in 
front of you- Those squiggles, lines and strange markings all have 
special meaning, and each deserve a quick explanation at least. 
Though sheet music may seem Greek to you right now, just think 
of the poor musician trying to decipher an assembler listing or 
BASIC program. The confusion level would be just as high, so sit 
back and try to at least visualize some of this. 

As explained earlier, notes run through cycles of A through G 
numerous times along the keyboard in assorted OCTAVES. At 
the far left end of the keyboard, you will notice that the hrst key is a 
white C note. The next WHOLE NOTE is a D, with the trend 
continuing on accordingly. At the far right side of the keyboard, 
the keys terminate with another C note. The entire scale on the 
ESP Grand Piario is from C to C. Other keyboards that you run 
across do not cover this entire range, but we are fortunate today to 
be exposed to a truly fine piano. 

Th« Transactor 


Volumes, I$sue01 



Above is a diagram to help you understand the placement of 
these notes on (he written scale. To begin, a STAFF is the 
five parallel lines, and the four spaces between them, on 
which notes and other musical characters are placed. In the 
diagram above will be noted two complete STAFFs, the 
BASS and TREBLE STAFFs. The treble staff can be identi- 
fied on the diagram, as the one starting with the G shaped 
character at the far left beginning of the staff, which is the 
TREBLE CLEF. Belov^ that will be noticed a really funny 
looking 9 shaped character, which is the BASS CLEF. This 
signifies the bass staff. In easier terms, the bass staff pertains 
to the left side of the keyboard, with the treble staff relating 
to the right hand side of the keyboard- In the middle of the 
SCALE in the diagram above falls the MIDDLE C, or a note 
that has been placed in the very centre of the keyboard. The 
left or right hand side of the keyboard is always assumed to 
be relative to (he position of middle C. 

On the diagram, each note is represented by a circular, 
hollow dot or a WHOLE NOTE. The true names for these 
notes will follow at the end of this article for those interested. 
This description refers the DURATION of the note in 
question. One half of a WHOLE NOTE, predictably, is a 
HALF NOTE. Below that is the QUARTER NOTE, then 
EIGHTH NOTE, and so on. Each of these notes have a 
corresponding character attached to it, with the HALF 
NOTE looking like a WHOLE NOTE with a tail attached. 
The QUARTER NOTE looks like a HALF NOTE with the 
circular hollow dot filled in. An EIGHTH NOTE looks like a 
QUARTER NOTE with a further tail projecting from the tip 
of its tail at an approximate 135 degree angle. Each of the 
notes beyond this point have further variations, with 
enough difference to be quickly distinguishable. Hopefully 
the diagram below will help you a bit more in visualizing 



TO a 


















While looking through the sheets of music in front of you, 
you will notice that the tails of the notes seem to be going 
both up and down in relation to the the circular dots. This is 
done to keep the tails from projecting beyond the edge of the 
staff, to help keep the scores from looking terribly messy. 
The general rule of thumb is to point the tails upward if the 
note is below the centre of the staff, and point the tail 
downward when the note is above the centre. The note on 
the centre line of the staff can be written as you deem 
convenient- Truthfully, this is only for esthetic purposes, but 
it does make for some very readable compositions. 

When the FLAT of a note is needed in a piece of music, a 
very funny looking 'b" is placed before the note correspond- 
ing on the staff. For a SHARP, a * is placed before the actual 
note. To cancel a flat or sharp, a NATURAL is placed on the 
STAFF before the note it is to affect. A NATURAL sign looks 
like a box with two tails extending vertically from the upper 
left and lower right corners. The FLAT, SHARP and NATU- 
RAL signs are referred to as ACCIDENTALS, and only 
affect the note in the same OCTAVE in which it has been 
written. They do not affect the same note in the other 
octaves unless (hey too have been labeled with an ACCI- 
DENTAL. This is why a NATURAL is needed, just in case you 
happen to need the same note again in the same octave, but 
without any variation in tone. 

Music in general is always written with a certain throb or 
pulse to it. These pulses are referred to as BEATS with the 
grouping of BEATS being determined by the ACCENTS 
some notes have on them in relation to others. This 
ACCENT is shown on musical scores as a > sign above the 
note on the staff. The strongest of the ACCENTS are high- 
lighted by putting a vertica! line in front of the note affected. 
These vertical lines divide the music into equal measures, 
and are referred to as BARS. The end of a piece of music is 
marked by two vertical lines, or a E>OUBLE BAR. 

The regular grouping of BEATs into BARS is called the TIME 
of the music with the kind of TIME being determined by 
whether the ACCENTS occur in twos, threes or fours as 
indicated by the TIME SIGNATURE written on the staff 
after the clef at the beginning of the piece. 

Th« Transactor 


Volume 5j Imo# 01 

If the BEATS fall into regular groups of two, this is said to be 
in DUPLE TIME and a number two is used as the top value 
in the TIME SIGNATURE. Predictably, if the BEATS fall 
into a sequence of regular groups of three, this is referred to 
as TRIPLE TIME with the TIME SIGNATURE adjusted 
accordingly. A sequence of four is called QUADRUPLE 
TIME and is marked with a four as the top value on the 
TIME SIGNATURE. With this out of the way. we now know 
that the top value on the TIME SIGNATURE refers to the 
number of BEATS in a BAR. 

The bottom value in the TIME SIGNATURE refers to the 
length of the notes in each BEAT expressed in fractions of a 
WHOLE NOTE. Therefore, a TIME SIGNATURE of 3/4 
indicates that there are three QUARTER NOTE BEATS in a 
BAR, in TRIPLE TIME. If we had a TIME SIGNATURE of 4/8 
then this would mean four EIGHTH NOTE BEATS per bar in 
QUADRUPLE TIME. You will find that the more you think 
about this one, the easier it is to comprehend. 

Sometimes the TIME SIGNATURE appears to be missing in 
action, and in its place appears another strange character- a 
TIME SIGNATURE as in dollars and cents, instead of the 2/ 
2. There are other instances of this occurring, but I feel it 
best that you take the initiative to find out more about it if 
vou feel so inclined. 

Within beats you will most likely notice note signs that did 
not seem to appear in my earlier description. They are all 
tied together at their tails, totally unlike anything described 
earlier, but they are really not so strange. The tieing together 
of the tails of EIGHTH NOTES is common practice within 
BEATS, just for the purpose of esthetics once again. Music is 
really a very tidy business. 

Quite often while composing music, a REST between notes 
is desired to break up the music a bit, and provide pleasur- 
able listening instead of a continuous stream of notes. If a 
space was left on the staff, the person playing the piece 
would not really know what was meant. The only way to 
express the REST properly would be with special symbols 
once again. In the note chart shown earlier, you have 
probably noticed the far right column of strange symbols 
under the headingREST Those are the characters to look 
for while playing music from sheet. The corresponding note 
durations are also shown to the far left. 

To conclude this article. 1 would like to bring to your 
attention all the key points covered today- 

Bass Clef 

Treble Clef 


Whole Note 


Whole Note 

Half Note 

Quarter Note 

Eighth Note 


Bar Lines 


Double Bars 

Time Signature 

Duple Time 

Triple Time 

Quadruple Time 

Alia Breve 

-The 9 shaped character symbolizing 

-The G shaped character indicating the 

-One half of a tone, or the distance 

between two adjacent notes, 
-Two semitones. 

-A raising of one semitone of a tone. 
-A lowering of one semitone of a tone, 
-A character used on sheet music to 

return a note to its normal value. 
-What the FLATS. SHARPs. and NATU- 

RALs mean in relation to each other: 

They only affect the corresponding 

notes within the OCTAVE in which it 

is applied, 
-(SEMIBREVE) a duration of one 

whole note. 
-(MINUM) a duration of half of a whole 

-{CROTCHET) a duration of one quar- 
ter of a whole note. 
-{QUAVER) a duration of one eighth 

of a whole note. 
-The pulse or throb of music when 

-Vertical line used in front of the most 

heavily stressed accents of the music. 
-Divide the music into equal measures. 
-To signify the end of a musical piece. 
-The regular grouping of beats into 

-The kind of time, either in twos, 

threes or fours. 
'The beats fall into regular groups of 

-The beats fall into regular groups of 

-The beats fall into regular groups of 

-Another name for a time signature of 

2/2, which means two half note beats 

in a bar in duple time. 

O clave 

-Twelve semitones or all notes be- 
tween A through G on the keyboard, 
black and white keys. 

If, after you have completed this article, you have an 
unsatiable appetite for more, 1 recommend the nearest 
library or bookstore. If your appetite is still there after all that 
trudging about, send us a letter and a further musical tour 
may appear again. Whatever the story, I hope that you 
enjoyed the short time that we have spent together. As a 
final note, I would like to thank John, Dee and the rest of the 
guys at ESP for the loan of their piano. Without it, this article 
may never have appeared- RTE 

The Transactor 


Voluffic 5, Itsue 01 

WAVES For The 64 

Chris Zamara 

Downsview, Ont. 

Sooth your brain and be more productive! 

An interesting psychological phenomenon is the soothing 

' 00 rem " da a oader for waves * 

effect which the sound of the ocean's waves seems to have 


on peop e. It seejus that the rythmic rush of white noise 

120 cs = ; rem * checksum ' 

makes one ee more re axed, and some peop e find that 

130 OS = 491 52 : rem ^ object start * 

having a white noise source (or the tape-recorded sound of 


breaking waves) in the room that they are working makes 

ISOreadb: jfb<Otfien 180 

them more productive. 

1 60 cs = cs + b 

170 poke OS, b: os = os+ 1: goto150 

Ifyousit behind your computer programmming for hours at 


a time, and you start going nuts after a while, try running 

190 if csOl 6560 then pr nt" *" checksum error *" " 

WAVES before your session- Once WAVES is enabled, it runs 

: goto 240 

during the interrupts, and simulates the sound of waves 


breaking on ashore. You sti have complete control of your 

210 sys49152 : rem * enabe waves 

computer, so you can program with the sound of waves in 

220 print " • * Ok, WAVES is enab ed. " " 

the background. Set the volume control on your 1 V or 


monitor to any evel you find comfortable, and try it for a 

240 end 

while. It might rea ly help you think (On the ot ler land, it 

250data169, 168J41, 0,212, 169 

might just drive you even more nuts, but it's worth a try)- 

260data 97,141. 1,212,169,221 

270daa141, 5,212,169,125, 141 

If you don't have vo ume contro , the number 1 5 shown in 

280data 6,212,169, 15,141, 24 

bo d on line 280 is the volume value. 15 is maximum, but if 

290data212, 120, 169, 45,141, 20 

you lower it, you wi also have to lower the checksum test 

SOOdata 3, 169, 192. 141, 21, 3 

value in ine 190 by the same amount or an error wi be 

310 data 88, 96, 88, 0,255,200 

reported. The easiest way to disab e Waves comp etely is 

320 data 0, 144, 1,238, 38, 192 

simp y change the master vo ume to with: 

330 data 208, 3,238, 39,192,173 

340 data 40,192,208, 37,173, 38 

POKE 54296, 

350 data 192, 205, 43,192,208, 63 

360 data 173, 39,192,205, 44,192 

Then, at any time, you can bring Waves back by POKing 

370data208, 55,169,129,141, 4 

54296 with some vo ume va ue from i to 1 5. That's assum- 

380data212, 169, 0,141, 38.192 

ing the interrupt vector hasn t been changed by sojne other 

390data141, 39,192,169,255,141 


400 data 40,192, 76,129,192,173 

410 data 38,192,205, 41,192,208 

Enter the BAS C program be ow and RUN it. If you get a 

420data 26,173, 39,192,205, 42 

checksum error, check the DATA statements. Once the 

430 data 192, 208, 18,169,128,141 

checksum is OK, WAVES will be enabled. It takes a few 

440data 4,212, 169, 0, 141, 38 

seconds for the first wave to start. Some technical notes: 

450 data 192, 141, 39,192,169, 

Voice 1 in the S D chip is used for the sound, and you can 

460 data 141, 40,192, 76, 49,234 

vary the frequency, attack/decay, and sustain/ re ease pa- 

470 data -1 

rameters of that voice to get different sounding waves. The 

wordat49193 and 49194 (low, high) controls the number of 

jiffies (1 /60 seconds) that the voice is gated, and the word at 

49195 and 49196 contro s the ungated time. 

Tho Transactor 


Volumes, Issue 01 

Programming Sound 
On The VIC 20 

Dave Gzik 
Burlington, Ont. 

By now, all you VIC 20 users have heard sound produced on 
your machine. For some, you have probably experienced 
more with the sound capabilities than others. In the follow- 
ing article 1 hope to show you some neat tricks with effects, 
and musical reproduction- 
First of all lets show you what makes up the sound system in 
the machine. Basically you will only affect 5 locations in the 
VIC. and they are: 






Speaker 4 (noise) 


Speaker 3 (high) 


Speaker 2 (midd e) 


Speaker 1 (low) 

Each speaker can play in three different octaves and the 
higher the speaker number, the higher the notes. To show 
this to you graphically, it would look like this: 





Speaker 3 



Speaker 2 





Speaker 1 





Notice that each speaker has some sort of redundancy of 
notes. Instead of 9 full octaves, the range from the lowest 
note capable to the highest note capable is 5 octaves. This 
overlapping allows the blending of the same note for a 
richer tone. 

Speaker 4 is a noise generator which can be used for sound 
effects. The volume setting can be in the range from to i5- 

The values used for musical notes in all speakers are in the 
range of 128 to 255 including speaker 4, A table for note 
values is shown on the next page. 

That's it for the description of the system, now lets put it to 

Basically, to play a note you set the volume, turn on the 
note, play it for a while, and then turn it off. 

To play it for a while is called the duration. The easiest way 
to accomplish the duration is with a FOR/NEXT loop. 

Try this example: 

10vol-36878:sl-36874:s2 = 36875:s3 = 36876:s4 = 36877 

20 poke vol, 15 
30 poke si ,200 
40fordur=l to 250 : next 
50 pokes 1,0 

This program sets the volume to 15, then puts the note 
value of 200 into speaker 1, and plays it for the duration 
count of 250. When the duration is finished it turns the 
speaker off. This is the standard routine, and you can 
expand it for use with multiple speakers and different 
durations for the notes. 

To recap, the basic program flow is: 

1 Set variables for volume and speakers, 

2 Set volume setting. 

3 Turn on speaker. 

4 Play it for a while, 

5 Turn it off. 

r Th» T^nsQctor_ 


jtolmne 3, HsvB 1 

To play music may require the use of data statements for tfie 
notes. Tfie best way to set them up tor ease is in this formal: 

DATA speakerl note.speaker2 note,speaker3 note, duration 

The corresponding read statement would then look like this: 


Now the basic program structure changes to this; 

1 Sel variables. 

2 Set volume. 

3 Read notes, duration from data. 

4 If data is completed then exit program. 

5 Turn on speaker. 

6 Play it for a while. 

7 Turn it off. 

8 Go back to step 3 

9 End reset all variables to zero 
10 Data elements. 

Below is a full fledged piece of music that puts the precred- 
ing logic to work. Study it carefully to see how it is struc- 

Next issue 1 will go further into manipulating the previous 
ideas for special sound effects, etc. 

1 leave you with a section of BACH'S invention number 4. 
Have fun. 

1 vol = 36878 : si = 36874 : s2 = 36875 : s3 = 36876 
20 poke vol, 5 
30 read x, y, dur 
40ifx = -1 thenSO 
50 poke s2,x : poke s3,y 
60forl = 1 todur*18 : next ^ ^ % .^"h 
70 goto 30 

80 poke voi,0 : poke si ,0 : poke s2,0 : poke s3,0 
90 end , , 

ToOOdata 0,201, 8,1 0,207, 8^. 0,209 
1010 data 8, ( 0,215, 8,\ 0,219, 8, | 
1020data221, 8, 0,199, 8, j 0,221, s) 
1030data 0,219, 8,1 0,,215, 8,1 0.209 
1040 data 8,; 0, 207, ' 8, 201, 209, ' 8] 207 
lOSOdata 0,* 8,209,219, 81215, 0. 8 ] 
1060 data219, 228, 8,221,, 0, 8,199,215 
1 070 data 8,fj221 , 0, 8/ 21 9, 227, 8,121 5 
1080data 0, 8.209,231, 8,,207, 0, 8,' 
1090 data 209, 228, 8,' 0,231,' 8,'219,232 
11 00 data 8, 0,235, 8,, 228, 237.' 8,) 
_l,110data238, 8,207,227, 8,! 0,238, 8 
1120data215,237, 8, 0,235, 8,;227, 232 
1 130 data 8, 0, 231 , 8, 201 , 232,' 8, 201 
1 140 data 228, 8^228, 231 , 8, 228, 232,' 8 
1 1 50 data 209, 235, 8. 209, 237,' 8, 215, 221 
lieOdata 8,215,237, 8,219,235, 8,219 
J 1 70 data 232, 8,1221 , 231 , 8, :221 , 228, 8 
'l 1 80 data 1 95, 231 , 8, il 95, 225, 8, 225, 228 
1 190 data 8, 225, 231 , 8, 207, 232, 8, 207 
1200data235, 8,209,219, 8,209,235, 8' 
1210 data 215, 232, 8,215,231, 8,219,228 
1220 data 81 219, 225, ' 8,!201 , 209, 8, 187 
J230data215, 6,n87, 0, 4,il95,215, 4 
1240 data 195, 219, 4, 0,215, 4, '135, 215 
1250 data 8,|l35, 209, 6,|135, 0, 8, 163 
1260 data 209, 8,ll75, 209, 32 | 
5000 data -1, -1, -1 





VIC 20 Note Values 

Where two values are shown, ft is necessary to alternate between them to get the true note 
Voice frequency registers are 36874/5/6. Noise reg ts 36877 Volume *s Lo nybbfe of 36878. See Memory 




Octave 1 

Octave 2 

Octave 3 \ 


Mod. Val. 


Mod Val 


Mod. Val. 


Mod Va 



















































A ' 




















Th« Ik-ontdctor 


Volume 5, Issue 01 

Sound Effects 

Programming sound effects on any Commodore machine 
requires but two things: the knowledge of how it works and 
a vivid imagination. If you only one of the two, this next 
Hsting will give you the other 

The sound effects presented here were originally written for 
the PET/CBM. Late model PET/CBMs had a built-in beeper 
that you won't find in earlier models, the VIC 20 or the 
Commodore 64. But that's no reason why they won't work 
on these machines too- What you need is a "Digital to 
Analog Converter". Many firms have marketed D/As in the 
past, but they're ridiculously simple to make. Below is a 
circuit schematic of a passive D/A converter. 

With the circuit in place, connect the output to the auxiliary 
input of any stereo system. It^s probably best to use an RCA 
male phono jack. 

— C 





80 OK 



The corresponding chip locations for the VIC and C64 are; 


VIC 20 

Commodore 64 










If you're not inclined to build this item, it shouldn't take 
terribly long to convert the program to work with the 
internal sound already provided for in the VIC 20 or Com- 
modore 64, For clues, take a look at VIC Sound by Dave Gzik 
in Ihis issue, or Zoundz for the C64 by Howard Strasberg in 
the Bits and Pieces section. 

The sound effects you will hear are: 

Action _B 


N " 

Piano diss Laser Fire 

Bombs Away Wolf Whistle 

Shave ^n' a Haircut Dirge 

Death Ray 

Ping Pong 

French Police 
Dive! Dive! 

Vanishing Saucer Eat My Dust 
Scramble Bounces 

Siren Ticking Clock 


To Mip 



You don't have to type them all in - just the ones you want. 
Lines 70-90 must be entered and it's good practice to turn 
off the speaker with a line like 160 after each effect. Other- 
wise the last sound of the effect will remain on, plus your 
cassette and other I/O may be adversely affected. 

Special thanks go out to J, David of WHCI for work done on 
these sounds, if you have others, send them in and we'll 
publish another collection like this in a future issue- 

Thtt IranKictor 


Volume 5, I$$u601 

70 tt = 59464 : rem timer 2 ow byte 

570 print "'•*'■ shave 'n' a ha rcut, 2 bits ' 

, .. " 

80 sr = 59466 : rem shift register 

580 poke sc, 16 : pokett,0 : pokesr,15 : t 


90 sc = 59467 : rem shift reg ster contro 

590 poke tt, 1 88 : or k = 1 to 200 : next 

1 00 pr nt " ■* * ' piano g iss *■ *^ * " 

600 poke tt,251 :fork-1 to 100: next 

110 poke sc, 16 : poke tt,0 : poke sr, 15 

610 pokett.O: for k-1 tot: next 

120fork = 0to100slep5 

620 poke tt, 251 : for k-1 to 100: next 

130 pok6tt,k : x = tan(k) : next 

630 poke tt, 225: or k=1 to200 : next 

140fork = 99to0step-5 

640 poke tt, 251 : fork=1 to 300 : next 

1 50 poke tt, k : X = tan(k) : next 

650 pokett.O: for k-1 to 150: next 

160 poke sc,0 : poke sr,0 : poke tt,0 

660 poke tt, 199: or k- Ito 200 : nex :t 


170 rem return 

670 poke tt,0 : for k - 1 to t : next 

1 80 print " "' aser fire • * * " 

680 poke tt, 188: or k = 1 to 150 : next 


190 poke sc, 16: pokett,0 

690 poke sc,0 : poke sr.O : poke tt,0 

200 poke sr, 1 5 : ork=1 to5 

700 rem return 

210forr = 0to100step5 

710 print" --* dirge ***" 

220 poke tt,r : for x= 1 to2 : next: next 

720 poke sc,16 : pokett,0 : gosub750 

230 pokett,r : x = tan(x) : next 

730 poke sc,0 : poke sr,0 : pokett,0 

240 poke sc,0 : poke sr,0 : poke tt,0 

740 goto 890: return 

250 rem return 

750 rem dirge 

260 print " * * - trench po ice * * ' " 

760 poke sr.15:t = 3 

270 poke sc, 16 : pokett,0 : pokesr,2 

770 poke tt, 237: ork-1to300' : next 

: gosub 880 

280fork = 1 to 4 

780 poke 11.237: or k- 1 to 200*t : next 

: gosub 880 

290 for r = 1 00 to 255 step40 

790pokett,237:tork=1 to100't:next 

: gosub 880 

300 poke tt,r : for x = 1 to 500 : next 

800 poke tt,237: for k=1 to300't:next 

: gosub 880 

310 for r-255 to 100 step 40 

810pokett,199:fork = 1 to300't:next 

: gosub 880 

320 poke tt,r : next : for x = 1 to 500 : next 

820 poke tt, 211 : for k-1 to200*t:next 

: gosub 880 

330 next 

830 poke tt,237 : tor k = 1 to 1 0O't : next 

: gosub 880 

340 pokescO : pokesr.O : pokett,0 

840pokett.237:fork-1 to200*t: next 

: gosub 880 

350 rem return 

850 poke tt, 251 : or k-1 to lOO^t ; next 

: gosub 880 

360 print "■- boi ribs away **- 

860 poke tt.237: for k-1 to300't:next 

370 poke sc J 6 : pokett,0 : pokesr,85 

870 poke tt,0 : for k = 1 to 5 : next : return 

380forr = 50to150:pokett,r:fork = 1 to 30: next: next 

880 poke tt.O : for k = 1 to t : next : return 

390 poke sr,1 : poke tt, 255 : for k = 1 o 800 : next 

890 print"*** r2d2 ***" 

400 poke sc,0 ' poke sr,0 : poke tt,0 

900 poke sc, 1 6 : poke tt,0 : poke sr, 1 5 

410 rem return 

910fork = 1 to30;pokett,10 + 100*rnd{1) 

420 print" '** wo f whist e "" " 

920 or =1 to 6: next: next 

430 poke sc, 16 : pokett.O : poke sr, 13 

930 pokescO : pokesr,0 : pokett,0 

440 or r-185to80slep 3 : poke tt,r : next 

940 rem return ^_— — 

450 poke tt,0 : for k - 1 to 200 : next 

950 print"*-" charge! ***" 

460forr-205to105step-3:pokett,r: next 

960 poke sc, 1 6 : poke tt,0 : gosub 990 

470 orr = 105to255step3; pokett.r: next 

970 poke sc,0 : poke sr,0 : poke tt,0 

480 poke sc,0 : poke sr,0 : poke tt,0 

980 goto 1080: rem return 

490 rem return 

990 poke sr,15;t-3 

500 print " *"'■ dive! dive! ' " ■" 

1 000 poke tt,255 : for k = 1 to 1 00 


gosub 1070 

510 poke sc,16 : poke sr,9 

1010 poke H, 191 :fork = 1 tolOO 

next : 

gosub 1070 

520 for k = 1 to 1 

1020 pokett,152: for k-1 to 100 

next : 

gosub 1070 

530forr = 250to180step-1 

1 030 poke tt, 1 28 : for k = 1 to 200 

next : 

gosub 1070 

540 poke tt,r : next : next 

1040 poke tt,152 : for k- 1 to 100 


t = 

550 poke sc,0 : poke sr,0 : poke tt,0 

: gosub 1070 

560 rem return 

1 050 poke tt, 1 28 : for k - 1 to 400 : next 
1060 return 

1 070 poke tt,0 : for k = 1 to t : next : return 



Volume 5, Issue 1 

* ft » 

1 080 print ' ' " ping pong 

1 090 poke scJ6: pokett,0 : poke sr, 15 

1100forj = 1 to 5 

1110 poke tt,255 : for k = 1 to 60 : next 

1120 poke tt,0: for k = 1 to 100Trnd(1)'20 . next 

1130 poke tt,128: for k-1 to 60: next 

1140 poke tt,0: for k=1 to 100trnd(1)'20 : next 

1150 for x = 1 to 100 : next: next 

1160 poke sr,63: poke tt,255: for k-1 to 500 : next 

1 1 70 poke sc,0 : poke sr,0 : poke tt,0 

1 180 rem^return 

i 1 90 print ' ■* " raspberry '**" 
1200pokesc,16: poke tt.O : poke sr,9 
1210 for k = 1 to 50: poke tt. 238: pokett.251 : next 
1 220 poke SCO : poke sr,0 : poke tt,0 

1 230 rem return __ ..^^^ — — 

1 240 print " * * • death ray * * * " 

1 250 poke so, 1 6 : poke tt,0 : poke sr, 1 5 

1 260 for k - 1 to 200 : poke tt, 1 50 : poke tt,200 

: poke tt, 255 : next 
1 270 poke sc,0 : poke sr,0 : poke ft,0 

1280 reni r.etui:n_^ — 

1 290 print " " ' vanishing saucer ' " " 

1300pokesc,16: pokett,0: poke sr,29 

1310fork = 160 to 0step-.3: poke tt,k: poke tt,k + 5 

: poke tt,k+ 15 : next 
1320 poke SCO : pokesr,0 : pokett.O 
1330 rem return 
1340 print" *•' eat my dust **' ' 
1 350 poke sc, 1 6 : poke tt,0 : poke sr,3 
1360fork = 200to235stepy : poke tt,k : poke tt,k-f 5 

:pokett,k + 20 
1370 for z = 1 to 20: next: next 
1 380 for k = 1 to 300 poke scO : poke sr, 1 6 : poke sc 1 6 

: poke sr,3 : next 
1390 fork = 235 to 1 70 step-.6: poke tt,k: pokett,k + 5 

: pokett,k+ 15 : next 
1400for k=170to220step3 : pokett.k: next 
1410fork = 220to129step-.5:pokett,k:pokett,k + 5 

: pokett.k + 15 : next 
1420fork=120to180step3: pokett,k: next 
1430 fork- 140 to 200 step2: pokett,k: pokett.k + 5 

: pokett,k+15 : next 
1440 k -200. poke sc 16: poke sr, 51 
1450fof x = 1 to 50 : pokett.k : pokett,k + 7 

: poke tt.k + 14 : next 
1 460 poke sc,0 : poke sr,0 : poke tt,0 
1470 rem return 

1480 print"'** birdie ***' 

1 490 poke sc, 1 6 : poke tt,0 : poke sr,85 

1500fork = 1 tolO 

1510 for k1 -152to56step-8: pokett.kl : next 

1520 poke tt,0: for k1=1 to int(rnd(1}*200) : next: next 

1530 pokesc,0 : poke sr,0 : pokett,0 

1540 rem return 

1 550 print " ' - * scramble • ' * 

1 560 poke sc, 1 6 : poke tt,0 : poke sr,85 

1570 for k=1 to 20 

1580 fork! =1 to 14: pokett,k1M6: next : next 

1 590 poke scO : poke sr,0 : poke lt,0 

1600 rem return___ 

V A 

1610 print" *•* bounces 

1 620 for n ^ 255 to 20 step-5 : poke sc, 1 6 : poke sr, 1 5 

: pokett.n : pokesc,0 
1630 for nn = 1 to 100 : next: next : pokesc.O 
1640 rem return 

1650 print" *'* musical scales *** " 

1 660 gosub 1 670 : goto 1 850 : rem return 

1 670 gosub 1730 

1680 pokett,239: poke sc, 16: poke 

1690forn = 1 to 50 

1 700 read nn : poke tt.nn 

1710forz = 1 to 50: next 

1720 nextn : restore : poke scO : return 

1730 poke scO 

1740tc=15:gosub1680: gosub 1770 

1750 tc = 51 : gosub 1680 : gosub 1770 
17601c = 85: gosub 1680: gosub 1770: return 

1 770 for n = 1 to 100 : next : return 

1780 data239. 225, 213, 201.190, 179, 169 

1790data159, 150, 142, 134, 127, 119, 113 

1800datal06, 100, 95, 89, 84, 80, 75 

1810data 71, 67, 63, 60, 60, 63, 67 

1820data 71, 75, 80, 84, 89, 95,100 

1830 data 106, 113, 119,127, 134, 142, 150 

1840 data 159, 169, 179, 190, 201. 2j3. 225. 239._ 

1850 print" *-* siren *** " 

1 860 poke sc, 1 6 : poke sr, 1 5 

1870forn = 1 to4 : for nn = 250to80step-2 : poke tt.nn 

: next 
1880 for nn = 80 to 250 step 2 : pakett,nn: next: next 
1890 poke sc,0 
1900 rem return 

* * * 

1910 print" "*" ticking clock 

1 920 m - 1 50 : mm = 50 : fern = 1 to 21 

1930 pokett,m-i-mm : poke sc,16 : poke sr, 15 

: poke sc,0 
1 940 for nn = 1 to 250 : next : mm = -mm : next 
1950 poke sc,0 
1960 rem return 

Th« Transactor 


Volume 5, Itsuo 1 

The SID In Review 

James W. Whitewood 
Campbellville, Ont. 

In the past, many articles have been written on the unleash- 
ing of the SID's power. Most of them were written for the 
average programmer and in most cases these are all quite 
readable and digestible. However there are very few that 
touch upon the uses of such a micro chip. 

What Is The SID? 

As most of us know the name SID is an acronym for Sound 
Interface Device, The SID chip can be considered a micro- 
processor in itself. However, unlike a conventional micro- 
processor the SID has been designed to perform one 
function, sound generation. To '^program^' the SID chip you 
simply tell it what note you wish to play, when you want it to 
play and when you want it to stop. Now doesn't that sound 
easy? The truth of the matter is that, as Tm sure most of you 
who have played with the SID chip have discovered, there 
are several bits and pieces that you have to define before 
you can tell the SID to start playing a note. 

The SID chip for all the good press it has received, does 
leave something to be desired. Consider, for instance, a 
piano. Let's say we play middle C. When you release the 
note (ie. lift your finger) you will continue to hear the note 
even if it is only for a brief time. Now consider the same note 
with the sustaining pedal pressed. The note will now con- 
tinue to play for up to 15 seconds after the key has been 
released. When you release a SID voice (tell it to stop 
playing) it goes into the release cycle, that is, it starts to 
decrease the volume until it is down to zero. So far this 
sounds good, so where is the problem? Well, on a piano if 
you play a C with the sustain pedal down and then you lift 
your finger and play an E you will hear the two notes playing 
together. As a programmer you have no way of knowing 
when the release cycle has been finished. The temptation 
therefore is for you to use the same voice for the second note 
as you did for the first, but when you setup the second note 
and turn it on. the volume of the first note may not have 
reached zero. The result is that the first note is cheated out of 
a proper completion. The simulation of the piano suffers as a 
result. This premature truncation of the note is not a notice- 
able problem when a short release time has been pro- 
grammed into the SID and in some cases it may even be 
advantageous. You can get around the problem however by 
setting up a count down table when you release the SID and 
then waiting for the count down to reach zero before giving 

the voice a new note to play. 

The SiD chip also has the undesirable feature of being 
almost entirely write-only. This means when you tell it 
something, you can't, at a later lime, ask it what it was. In 
the case of turning the SID voice on or oft this is very 
annoying. As most of you are aware, to turn a SID voice on, 
you have to set bit in either locations 54276, 54283 or 
54290. This may sound straight forward enough, but in 
order to do this you have to know what the rest of the byte 
looked like so that you don't change the waveform etc. 
Again you can get around this problem by keeping a copy of 
the SID's parameters elsewhere in memory. This solution, 
in my mind, is awkward and in programs where speed is 
important this could lead to problems. 

The SID chip also has some beautiful filter capabilities. You 
may ask it NOT to pass certain notes to the outside worid. 
This is useful for when you want to remove the harsh 
sounds caused by harmonic overtones. This has the effect of 
mellowing the sound out, giving it a more pleasant sound- A 
type of vibrato may be done by setting the filter up in its 
band pass mode and then increasing and decreasing the 
cutoff frequency of the filter. The interesting thing about the 
SID chip is that when you alter the filter type yon get quite 
an audible click. In most cases this does not effect anything 
since filters are usually picked before a piece commences, 

I have discovered only one last difficulty while using the SID 
chip. While the release cycle is supposed to decrease the 
volume to zero, the chip never really seems to get there. It 
seems that after a voice has been released the note plays 
forever at a volume of about .5 on a scale of to 15, This is 
most annoying when one is demonstrating music to a large 
audience since there will always be some background noise. 
My sources at Commodore tell me that they are contemplat- 
ing altering capacitors CIO and CI I from 2200pf to lOOOpf J 
do not know whether Commodore found that by changing 
the capacitors the problem of residual noise goes away or 
whether they were just speculating that it would. 

On the whole, however, I am extremely pleased that Com- 
modore came out with the SID chip. The power of musical 
synthesis on one chip combined with its relative ease of 
programming will allow many more young musicians to 
express themselves. 

The Transactor 


Volume 5, Issue 01 

Sound Maestro 

Darren Spruyt 
Gravenhurst, Ont. 

Sound Maeslro is a sound utility for the Commodore-64. It 
aids in the production of music and/or sound on the 
Commodore-64. It is also quite easy to use. It eliminates the 
need to calculate the product of lo nybble -h hi nybble x 1 6 
for the envelope paramters. All you need supply is the actual 
value from 1 to 15. 

After the program has been LOADedand RUN, it is ready to 
use. The format to produce the note is: 



VOICE is the voice number (1-3) 

LO is the low value of the note to be played 

HI is the high value of the note to be played 

ATT is the attack rate (0-15} 

DEC is the decay rate (0-15) 

SUS is the sustain volume (0-15) 

REL is the release rate (0-15) 

For note values and envelope rates, see The Transactor Vol. 
4, *5, p33. . , The Reference Issue. 

The DURATION is the time in jiffies (!/60 second) that the 
note is to pause on the SUSTAIN section of the ENVELOPE. 
Finally, WAVE is the waveform value for the note to be 
played ie. 32 = Sawtooth, 1 6 = Triangle, 64 = Pulse, 
1 28 - Noise. 

If using Pulse, set up the pulse setting before-hand. The 
master volume also needs to be turned on with: 

poke 54272 + 24, mv :rem master volume (0-1 5) 

Listing 1 is the machine language loader for Sound Maestro. 
Listing 2 is a short program using Sound Maestro. LOAD and 
RUN this after having RUN Sound Maestro. 

Editor's Note 

Even Darren's own song demo uses only 3 of Sound Mae- 
stro^s capabilities. Although a simple example is probably 

best, Sound Maestro paves the way for some pretty ad- 
vanced SID workouts. With this utility, those frustrating 
write-only registers in the SID are somewhat more tolerable. 
Lastly, C64-Link users will have to use the Link Relocator 
program before running the Sound Maestro loader. If you 
don't have the Relocator, contact Richvale Telecomm for a 

1 rem sound maestro-64 v1 .00 84/02/06 

20 rem darren spruyt 

30 rem box 1226 graventiurst 

40 rem ontano. pOc 1gO 

100 print:print"^|sound maestro-64" 

110 print:print'' darren spruyt' 

120 print:print"setting up, . ,. 

130 for k = to 427: read a 

1 50 poke 491 52 -+- k.a : ch = ch -h a 

160 poke 1024.8 : poke 55296.a 

1 70 next 

1 80 if ch O 48 444 then print " chiecksum error " : end 

200 print " ^Hinstructions tor use: " 

210 print "Hsys 491 52, vJo,hi,alt.dec,sus.rel,p,wav" 

220 print"where: 

230 print'" V = voice number (1-3 inclusive) 

240 print 'Mo ^low value of note 

250 print" hi =higti value of note 

260 print " att = attack value (0- 1 5) 

270 print" dec - decay value {0-15) 

280 print " sus = sustain level (0-15) 

290 print" rel = release value (0-15) 

300 print " dur = pause (# of jiffies at sustain volume) 

310 print " wav = waveform type (1 6 - tri. 32 = saw, 

64^ pulse, 128 = noise) 
320 print" note:" 
330 print " pulse, if used, the width must be set up 

before- hand. " 
340 print" master volume must also be turned on." 
350 print" if i/o troubled, run-stop/restore. 
360 print " note and att/dec/sus/rel values are on p33, 

in transactor vol4, #5 
1000 data 32,254,192,168,208, 3, 76, 8 
1010 data 175, 201, 4, 176,249,202, 142, 94 
1020 data 193, 142, 95,193,138. 10, 10, 10 

The Tk'ansoctor 


Volume 5, UsueOI 

lOSOdata 56,237, 94,193,141, 94,193, 24 

10 rent quarter master's store 

1040data105, 6,168,169, 0,153, 0,212 

20 rem using darren spruyt's 

1050 data 136, 136, 169, 0, 153. 0,212, 160 

30 rem sound maestro v1 .00 

1060 data 2, 162, 255, 202, 208, 253, 136, 208 

100 poke 54272 + 24, 10: i 

'em voume 10 

1070data248, 32, 13,193,172, 94,193,153 

110zz = 900 : xx = -1 : rem setxx = Oforfun 

lOBOdata 0,212,238, 94,193, 32, 13.193 

120 read o, hi, dur 

1090 data 172, 94,193.153, 0,212,173, 94 

130 if o<0 then stop 

1100data193, 24,105, 4,141, 94,193, 32 

140 sys 49152, 1, o, hi, 0, 

0, 9, 0, 900*dur. ; 


11 10 data 254, 192, 10, 10. 10, 10,141, 96 

150 i XX then 180 

1120data193, 32,215,192, 32,254,192, 13 

160sys49152,2, o + 5, h 



1130data 96,193.172, 94,193,153, 0,212 

170 sys 491 52, 3, o+10,hi,0,0,9,0,900'dur 


1140data 32,231,192,238, 94,193, 32,254 

180 for -0 to 77'dur : next : goto 130 

1150data192, 10, 10, 10, 10,141, 96,193 

1000 rem data for the notes 1410 data 24, 

14, ,25 

11 60 data 32,254,192, 13. 96,193,172, 94 

1010 rem measure#1 

1 420 data 0, 

0, .25 

1170data193, 153, 0,212, 24, 32,115, 

1020 data 97,B„25 

1430 rem measure #11 

1180 data 32,158,173, 32,247,183, 24,172 

1030 rem measure #2 

1440 data 24, 

14, .375 

llOOdala 95,193,165, 20,121, 85,193,153 

1040 data 48, 11, .25 

1450 da a 143, 

12, .0625 

1200data 85,193,165, 21,121, 88,193,153 

lOSOdata 48, 11, .25 

1460 data 48, 

11,, 375 

1210 data 88,193,173, 94,193, 56.233, 2 

1060 data 48, 11, .25 

1470 data 104, 

9, ,0625 

1220data141, 94,193. 32, 13,193. 41,254 

1070 data 143, 10, .25 

1480 data 97. 

8, .25 

1230 data 172, 95,193,153, 97,193,172, 95 

1 080 rem measure #3 

1490 data 143, 

10, .375 

1240 data 193, 190, 97,193,232.138,172, 94 

lOOOdata 104.9, .25 

1500 data 48, 

1 1 , ,0625 

1250 data 193, 153, 0,212,172, 95,193,169 

1100 data 104, 9, .25 

1510 rem measure #12 

1260data 1.153, 91,193, 76,103,193,172 

11 10 data 104, 9, .25 

1520 data 143, 

12, ,75 

1270data 95,193,189, 21,193,153, 85,193 

1120data104, 9, .25 

1530 data 48, 

11,, 375 

1280data189, 37,193,153, 88,193, 96,172 

1130 rem measure #4 

1540 data 143, 

12, ,0625 

1290data 95,193, 24,189, 53,193.121, 85 

1140 data 143, 12, .25 

1550 rem [[ieasure#13 

1300 data 193, 153, 85,193,189, 69,193,121 

1150 data 24, 14, .25 

1560 data 24, 

14, .75 

1310data 88,193,153. 88,193, 96, 32,253 

1160 data 143, 12, .25 

1570 data 97, 

8. ,375 

1320 data 174, 32,158,183,138,201, 16,176 

11 70 data 48, 11, .25 

1580 data 48, 

1 1 , .0625 

1330 data 1. 96, 76, 8,175. 32,253.174 

1180 rem measure #5 

1590 rein measure #14 

1340data 32,158,183,138, 96, 1, 1, 1 

1190data143, 10, .25 

1600 data 24, 

14, ,25 

1350 data 2, 3, 4, 5, 5, 6, 15, 30 

1200data143, 12, .25 

1610 data 0, 

0, ,25 

1360data 48, 60,180, 44,224, 0, 0, 

1210 data 195, 16, .50 

1620 data 24, 

14, ,25 

1370 data 0. 0, 0, 0, 0. 0, 0, 

1220 data 97, 8, .25 

1630 data 0, 

0, .25 

1380 data 0, 0, 0, 1, 1, 1. 2, 3 

1230 rem measure #6 

1 640 rem measure #1 5 

1390data 5, 7, 11, 13, 15, 18, 45, 90 

1240 data 48, 11,. 25 

1650 data 24, 

14, ,375 

1400data144, 180, 28,132,160, 0, 0, 

1250 data 24, 14. .25 

1660 data 143, 

12, ,0625 

1410 data 0, 0, 0, 0. 0, 0, 0, 

1260 data 48, 11,. 25 

1670 data 48, 

11,. 375 

1420 data 0, 0, 2, 3, 5,255,255,255 

1 270 rem measure #7 

1680 data 104, 

9. .0625 

1430data255, 255, 255, 0, 0, 0, 18, 2 

1280 data 104. 9, .25 

1690 data 97, 

8, .25 

1440data112, 32. 32, 32, 4, 11, 18.120 

1290 data 210, 15, .25 

1700 data 143. 

10, ,375 

1450 data 169, 117, 141, 20, 3,169,193, 141 

1300 data 143, 12, ,25 

1710 data 48, 

11,, 0625 

1460 data 21, 3, 88, 96, 96.160, 0,185 

1310 rem measure #8 

1720 rem measure #16 

1470 data 91,193,240, 39,190, 85,193,202 

1320data210, 15, .25 

1730 data 143, 

12, ,3 

1480 data 138, 153, 85,193,201,255,208, 27 

1330 data 143, 10, .25 

1740 data 210, 

15, ,3 

1490 data 190, 88,193,202,138,153. 88,193 

1340 rem ineasure#9 

1750 data 24, 

14, .3 

1 500 data 201 , 255, 208, 1 5. 1 85, 1 00, 1 93, 1 70 

1350 data 48, 11, .75 

1760 data 143, 

12, .3 

1510 data 185, 97, 193, 157. 0,212,169, 

1360 data 97, 8, .375 

1 770 rem measure #1 7 

1520data153, 91,193,200,192, 3.208,207 

1370 data 48, 11, .0625 

1780 data 24, 

14, 1 

1530 data 76, 49,234,234 

1380 reiti measure #10 

1 790 data 0, 

0, 1 

1390 data 24. 14, .25 

1800 data -1, 


1400 data 0, 0, ,25 

Iti* Transactor 


Volume 5, lisua 01 

Sprite Rotate 

Chris Zamara 
Downsview, Ont. 

Rotational Animation TJie Easy Way! 

Sprites in Ihe C64 are excellent for animation. By defining a 
number of different sprite shapes in memory, then storing 
the pointers to those shapes sequentially into the VIC-II 
video chip, a shape on the screen can appear to undergo a 
metamorphosis. One of the common applications of this 
technique is when a shape must appear to rotate, either 
clockwise or counter-clockwise. For example; in an aste- 
roids-type video game, the player's spaceship must rotate to 
the position in which it is supposed to travel. 

The best way to accomplish this is to define as many sprites 
as there are rotational posihons of the ship (32 is a good 
number), where each of the 32 sprite definitions looks like 
the ship pointed in one of its 32 positions. The video game 
program then merely changes the sprite shape pointer in 
the VIC chip, and the ship appears to rotate. The code for the 
game becomes easy, but the hard part is defining all of those 
sprites (32 of them!), and defining them accurately, so that 
the ship rotates smoothly and naturally. 

It is for exactly the above reason that 1 wrote "Sprite Rotate''. 
Sprite Rotate takes a single sprite, and rotates it clockwise to 
create as many sprites as you need, completing a full 360 
degrees of rotation, 

A single sprite is defined (using Commodore's sprite editor, 
perhaps) in any '^sprite page". After running Sprite Rotate, 
you will first be asked the centre of rotation of the sprite. The 
centre of a 24x21 sprite grid is (12, 11). and that is the usual 

reply for the first question. You will then be asked the sprite 
page of the shape. Each sprite page is 64 bytes long, and 
your sprite definition must begin on a 64 byte boundary. 
The address of the start of the shape divided by 64 will give 
the sprite page. All of the new (rotated) shapes produced by 
sprite rotate will be stored in subsequent sprite pages, and 

the original sprite will be the first in the animation se- 

The next question to answer is the number of positions to 
rotate the sprite. Our above spaceship example would re- 
quire 32. Make sure you have space in memory above the 
page of the original sprite. You may request as many as you 
want (more positions give smoother movement), but be 
forewarned: the program takes a LONG time to execute and 
each rotation means 64 more bytes of memory get used up. 

The last question is whether you want to SAVE the sprite 
data. If you answer 'Y\ you will be prompted for a filename, 
and a program file will be saved on disk, containing the 
original sprite as well as all of the generated sprites. This file 
can beLOADed with: 

LOAD" filename \ 8, 1 
Don't forget the ",1" for non-relocating load. 

Once the above information has been supplied. Sprite Ro- 
tate will start chugging away, rotating each shape point by 
point. You can see the current sprite being worked on, and 
the next sprite in the sequence being created on the screen. 
The process is quite slow, but the program can be optimized, 
as it is now written to be easily read and understood, not to 
go fast. After the rotation process is complete, the sprite can 
be seen in action. Press the Fl and F7 keys as indicated to 
see the sprite rotate clockwise or counter clockwise. At this 
point, pressing the space bar ends the program. 

If you have occasion to use this program just once, it is worth 
the effort of typing it in. i only used it once, but even all the 
effort taken to write it amounted to less time than it would 
take to accurately draw 40 sprites using the sprite editor. 

The Tk'onsactor 


Volume 5, 1»ue01 

1 00 rsm ************************************* 

370 next co 

105 rem nolatesprte program - Chris Zarnara, 1983* 

375 next yO 

110 rem" * Creates N sprite shape tab es, 


1 1 5 rem " * rotating a sprite o ockwise. * 

385 ang e = ang e + rtate 

1 20 rGm ************************ 


390 page = page + 1 

1 25 sc$ - chr$(1 47) : cd$ - chr$(1 7) 

395 poke 2040, page : poke 2041 ,page + 1 

1 30 print sc$ " enter centre of rotation (x 

■.y) " ; 

400 print i 

135 input ex, cy 

405 next 

140 nput" sprite page of shape ";begin 


1 45 nput " number of positions for rotation " ;n 

415 if s-0 then 480 

1 50 s = 0: input " save sprite data (y/n) " : 


420 openi ,8,12, " @0: " +f$+ " ,p,w" 

155 if eft$(y$,1)<>"y"then175 

425 sh - int(baddr/256) 

160 input ■■fiename";f$ 

430 s = baddr-sh*256 

165s = -1 

435 pr nt#1 ,chr$(s)chr$(sh); 


440 rem ' start address for oad * 


445 for i = baddr to (beg n + n) * 64 

180pokeg + 21,3 

450 print#1 ,chr$(peek(i)); 

185 poke 2040,200 : poke 2041,201 

455 next 

1 90 poke g + 39, 1 : poke g + 40, 1 

460 c osel 

1 95 poke g + 0,90 :pokeg + 2,180 

465 print:print " ok, f e is saved, use ,8, 1 after oad 

200 poke g+ 16,0 

to oad t start ng " ; 

205 poke g + 1,60 : poke g + 3,60 

470 print at the same page the first sprite came from. 

210pokeg + 29,0 


215pokeg + 23,0 

480 gosub 570 

220 poke g + 28,0 

485 end 



230 for i = to 7 : e{ ) - 2t(7-i) : next i 

495 rem '"•••' end of main ine •••-*'« 



240baddr = begin'64 

505 rem * pont pot subroutine 

245 prnt"hod on. c earing sprite area' 

510x2 = nt(x2 + cx + 0-5) 

250 fori = (begin + 1)*64to(begin + n) 


515y2 = nt(cy-y2 + 0.5) 

255 poke i,0 : nexti 

520 if x2>23 or y2>20 or x2<0 or y2<0 hen return 

260 print sc$; 


265rtate = -2- 3.1415926 /n: ange = 

-- rtae 

530 c = int(x2/8) 

: rem ■ use pi symbo 

535 bt - e(x2 and 7) 

270 page = begin 

540 a2 = (page+1)'64 + c +y2'3 


545 if a2> 64*256 then print" warn ng: out of 

280 fori = 1 ton-1 

bound address " : return 

285 addr = baddr 

550 poke a2,peek(a2) or bt 


555 return 

295 for yO = to 20 


300 xO = 

565 rem - view rotating sprites 

305 for CO = to 2 

570 print sc$ cd$ cd$ cdS cd$ cd$; 

310forbit = 01o7 

575 print " press f1 or f7 to rotate shape ' 


580 print cd$ " press space to end, " 

320 if (peek(addr) and e(b t)) - then 355 

585 a = begin ; en = beg n + n-1 


590 poke 2040, a 

330 X = cx-xO : y = cy-yO 

595k = peek(197) 

335x2 = x'cos(ange)-y'sin{ange) 

600ifk = 4thena = a~1 

340 y2 = x*sin(ange) + y'cos(ange) 

605ifk = 3Uiena = a+1 

345 gosub 505 

610 if k = 60 then return 


61 5 if a<begin then a = en 

355 xO = xO + t 

620 if a>en then a = begin 

360 next bit 

625ford-t to50/n:nextd 

365 addr - addr + 1 

630 goto590 

The Transactor 


Volufno 5, Isiuo 01 


Chris Zamara 
Downsview, Ontario 

Break The 8 Sprite Barrier! 

One of the great things about the V!C-Ii video chip in the 
Commodore 64 is its use of sprites, or moveable object 
blocks (MOBs). Using sprites in a game program greatly 
simplifies the task that the software normally has to per- 
form, and generally results in a faster moving, higher quality 

What could be better than sprites? More sprites! The VIC 
video chip allows up to 8 sprites at a time to be defined, 
which means that in normal use, a maximum of 8 sprites 
may appear on the screen at one time, (any number of sprite 
definitions may exist at any one lime, but only 8 of these 
may be selected). But wait, some of you are saying, Commo- 
dore claims that up to 8 sprites may be defined per line. How 
is this possible? Well, first let's look at how it is possible lo 
display more than 8 sprites on the screen, and the limita- 
tions imposed by this technique. 

How to Display More Sprites 

First of all, how can more than 8 sprites be seen on the 
screen at the same time? Well, the trick is to use the 64's 
powerful raster interrupt feature. The VIC chip can be 
programmed to interrupt the execution of instructions at 
any given raster scan line (sprite vertical or Y position), and 
have the CPU execute a user routine at that point before 
continuing with what it was doing. After the raster beam 
draws the first set of 8 sprites (assuming all 8 are used), the 
user interrupt routine simply sets up new sprite definitions 
(shape pointer, coordinates, colour, etc.), and the raster 
beam draws them. The previous dehnitions remain on the 
screen while the new ones go on, but the original set of 
sprites must be redefined before the picture tube's electron 
beam gets back to the top of the screen again so the first 8 
sprites can be re-drawn. There will be no visible flicker, 

since the beam is always tracing over valid sprite defini- 

Limitations of the Raster Technique 

This basic technique works fine, except there are certain 
problems: what would happen if a sprite moved down so 
that part of it was below an interrupt line, and part was 
above? Well, if the sprite was redefined below the line, it 
would be "cut off" at the line, and the bottom half would 
probably appear in some strange place on the screen. If a 
program tried to move a set of sprites freely about the 
screen, all kinds of silly things could happen. Thus, using 
the raster interrupt technique cleariy limits a set of sprites to 
a definite field. 

Sprite Fields 

The question is, how many scan lines high should these 
fields be? The smallest field would give the maximum 
number of sprites on the screen, since the screen could be 
divided into the most fields, and each field could contain a 
maximum of 8 sprites. 

The smallest field size is determined by the height of a 
sprite. This height is 21 for a regular sized sprite, or 42 for a 
vertically expanded sprite. If we make a field exactly as high 
as a sprite, however, the sprite will not be able to move up or 
down without moving into another field- If the same sprite is 
redefined in the field above or below, and we must assume 
the worst case, part of the sprite will get *tut ofr\ This is the 
problem with the ""8 sprites per line" claim. A bigger sprite 
field would give the sprite more freedom of movement, but 
it would of course limit the maximum number of sprites that 
could appear on the screen. It looks like a trade-off will have 
to be made. 

The TranMictor 


Volume 5, lnue 01 

Enter **QuasiMOB" 

Since each application of sprites has unique requirements. I 
have written ''QuasiMOB", a utility which allows any num- 
ber of different sprite configurations. 

The number of sprite fields on the screen, and the start 
raster line of each field is variable. The other variable is the 
number of ''quasi sprites". A quasi sprite is used just like a 
normal sprite, but instead of storing the sprite's coordinates, 
colour, shape, etc. directly into the VIC chip as usual, these 
parameters are stored in a special 64 byte area of memory. 
QuasiMOB stores the parameters from the appropriate quasi 
sprite into the VIC chip at the correct scan line, making one 
sprite into as many sprites as there are fields. 

An Example: Using 12 sprites 

This is the way that QuasiMOB is set up in the listing in this 
article. The 4 quasi sprites, sprites 0-3 in the VIC chip, will 
be defined and redefined by QuasiMOB during the inter- 
rupts, and sprites 4-7 will be available for normal use. Thus, 
to use one of the 4 quasi sprites in the top half of the screen, 
change the "sprite set 1 " area of memory, and to change any 
of the sprites in the bottom half of the screen, use the ^^sprite 
set 2'' area, 

(Remember, this is only one example. You could select 8 
quasi sprites and 3 fields for a total of 24. but this would 
allow for no "real" sprites and the quasi sprites would be 
limited to smaller fields. Additional field borders (12 have 
been allowed for) go into bytes 49159 through 49168. Refer 
to the listing to see how the parameters in the quasi sprite 
memory areas are set up. Near the end of the listing, all the 
parameters for field 1 are defined and explained. 

For example: suppose we need 1 2 sprites on the screen for a 
particular application, and four of these sprites must have 
complete freedom of movement on the screen (i.e. the 
software can never guarantee where one of these four 
sprites will be). These 4 sprites must be 'Yeal" sprites, which 
are defined in the VIC chip as usual. Since we need an 
additional 8 sprites, we can allocate 4 quasi sprites, and split 
the screen into 2 fields. The boundary between the two 
fields will be in the middle of the screen, at scan line 135. 
This gives us 4 sprites which must stay in the first field, or 
top half of the screen, and 4 sprites in the bottom half. The 
general rule for sprite movement is that a sprite must be 14 
or more scan lines (Y units) away from a border. So in this 
case, the top sprites could have Y values from 14 to 121 
(maximum is 135 minus 14), and the bottom sprites could 
have Y values from 149 to 241 (minimum is 135 plus 14). 
This 1 2 sprite scheme works quite well for many games, and 
12 sprites at one time is often all you need. 

Running QuasiMOB 

Once this information has been supplied, QuasiMOB is 
enabled with: 

SYS 49152 

After this initialization, the system returns to BASIC, and the 
program runs during the interrupts, invisible to the user. If 
the sprite parameters are set up as in the listing, 8 sprites 
should appear on the screen (since no shapes have been 
defined, the sprites may look like a block of garbage, but 
don't worry about it). Four sprites will be in the top half of 
the screen, and 4 in the bottom half. Remember that only 
the first 4 sprites in the VIC chip are being used, so you can 
stitl put another 4 sprites on the screen. This gives us the 
illusion of 1 2 sprites; the 2 sets of 4 ''quasi" sprites (0-3 x 2), 
and the 4 'Yeal" sprites (4-7). 

To implement the above scheme, QuasiMOB needs to know 
the following: 

- the number of quasi sprites to use: 4. 

- the number of fields: 2. 

- thestart raster lines of each field, which is for field 1 (top 
of screen), and 1 35 for field 2 (approximately the middle of 
the screen)- 

The above parameters could be set up from BASIC in the 
following way: 

POKE 49155,4 

POKE 49156,2 

POKE 49157,0 : rem field 1 

POKE 49158,135; rem field 2 

0, top line of screen 
135, approx, halfway 

A BASIC or machine language program can modify the 
contents of the quasi sprite memory area, and move around 
or change the shapes of the quasi sprites on the screen. For 
example, in the above setup using 4 quasi sprites and 2 
fields, to change the x coordinate of quasi sprite 1 in the top 
half of the screen (held 1), you could use POKE 49451 ,x from 
BASIC (where 'x' is the x coordinate for the sprite). This 
changes the first byte in the quasi sprite memory area, 
which is the x coordinate of quasi sprite 1 , field 1 . The field 2 
parameters start 64 bytes later, at 495 1 5, and the parameters 
for subsequent fields (if there are more than 2) continue at 
64 byte intervals. Once again, refer to the assembler listing 
to see which bytes to change for each sprite parameter. 

Note that after QuasiMOB has been initialized, normal 
control of the system is restored in most respects. SAVEing 

Th« Tb-ansoctor 


Volumes, Ift$ue01 

or LOADing to or from disk or tape will not work properly 
while QuasiMOB is running, so RESTORE before such an 
operation, and re-enable QuasiMOB (with SYS 491 52) after- 

Each quasi sprite area is 64 bytes long, and contains all the 
information for 8 sprites. It is set up like this; 

X,Y table (first 16 bytes) 
X high bits (1 7th byte) 
X expand (18th byte) 
Y expand (19th byte) 
sprite enable (20th byte) 
colour (21st to 28th bytes) 
shape (29th to 36th bytes) 

Some of the other features, such as sprite multi colour mode 
are not supported, but such features can be easily added if 
needed (only the first 36 bytes in each 64 byte area are now 
being used). Remember that each additional feature slows 
down program execution time slightly, since the CPU has to 
do more at every interrupt. If less than 8 quasi sprites are 
being used, the first parameters in each category are used. 
Thus, in the above example using 4 quasi sprites, only the 
first 4 X,Y coordinates, the first 4 colours, etc. in each quasi 
sprite area need be defined. The rest will be ignored. The 
single bit parameters (x high bits, sprite enable, and X & Y 
expand) work in (he same way as in the VIC chip: the least 
significant bit corresponds to sprite 0, bit 1 corresponds to 
sprite 1, etc. 


QuasiMOB gives an easy way to add extra sprites to pro- 
grams that need them. The program is intended as an 
example on how to use more than 8 sprites, and so is quite 
simple. Readers who are not too familiar with the use of 
raster interrupts can learn more about them by looking at 
the code and reading the comments in the program. You 
should be able to easily add any extra features (hat you 
need, and use the program as a base for more complex 
sprite control programs (maybe to allow sprite movement 
from one field to another through some priority sorting 
technique). Using more than 8 sprites on the Commodore 64 
is a good example of how software can overcome hardware 


1000 rem quasimob loader 
1G10for| = 49152 to 49550: read x 
1020 pokej,x : ch=ch-(-x : next 
1 030 if chO 3571 3 then print " checksum error " 
1 040 rem 

1050data 76, 39,192, 4, 2, 0,135, 
1060 data 0, 0, 0, 0. 0. 0, 0, 
1 070 data 0, 0, 0, 0, 0. 255, 254, 252 
1 080 data 248, 240, 224, 1 92, 1 28, 0, 0, 1 
1090data 3, 7, 15, 31, 63,127,255,169 
1100data127, 141, 13,220,169, 1,141, 26 
1110data208, 120, 173, 17,208, 41,127,141 
1120data 17,208,169, 0,141, 18,208,141 
llSOdata 17,192,169, 78,141, 20, 3,169 
1140data192, 141, 21, 3, 88, 96,173. 25 
1150data208, 41. 1,208, 3, 76,134,192 
1160data169, 1,141, 25,208, 32,140,192 
1170data238, 17,192,174, 17,192,236, 4 
1180 data 192, 208, 5,162, 0,142, 17,192 
1190data173, 17,208, 41,127,141, 17,208 
1200data189, 5,192,141, 18,208,173, 17 
1210 data 192, 208, 3, 76, 49,234,104,168 
1220data104, 170,104, 64, 172, 3,192, 173 
1230data 21,208, 57, 21,192,141, 21,208 
1240data173. 3.192, 10,141, 20,192,162 
1250data 0,173, 17.192. 10, 10, 10, 10 
1260data 10, 10,141, 18,192,168,185, 43 
1270 data 193, 157, 0, 208, 200, 232, 236, 20 
1280data192, 208, 243, 174, 18,192,172, 3 
1290 data 192, 173, 16,208, 57, 21,192,141 
1300 data 19,192,189, 59,193, 57, 30,192 
1310data 13, 19,192,141, 16,208,173, 23 
1320data208, 57, 21,192,141, 19,192,189 
1330data 61,193, 57, 30,192, 13, 19,192 
1340data141, 23,208,173, 29,208, 57, 21 
1350data192, 141, 19,192,189, 60,193, 57 
1360 data 30,192, 13, 19,192,141, 29,208 
1370 data 162, 0,172, 18,192,185, 63,193 
1380data157, 39,208,185, 71,193,157,248 
1390 data 7,200,232,236, 3, 192,208,237 
1400 data 174, 18,192,172, 3,192,189, 62 
1410data193, 57, 30,192, 13, 21,208,141 
1420 data 21,208, 96, 10, 80,150, 60, 80 
1430 data 90, 30, 110, 0, 0, 0, 0, 
1440data 0. 0. 0, 1, 2, 2, 15, 1 
1450 data 2, 3, 4, 0. 0, 0, 0,128 
1 460 data 1 29, 1 30, 131, 0, 0, 0, 0, 
1470 data 0, 0, 0, 0, 0, 0, 0, 
1480 data 0, 0, 0, 0, 0, 0, 0, 
1490 data 0, 0, 0, 0, 0, 0, 0, 
1500 data 0, 0, 0,190,150, 10,200,180 
1510 data 170, 70,160, 0, 0, 0, 0. 
1520 data 0, 0, 0, 2. 8, 8, 15, 5 
1530 data 6, 7, 8, 0, 0. 0, 0, 
1540 data 33, 55, 55, 0, 0, 0, 

Tho Troniactor 


Volume 5, Issue 1 

QuasMOB Source Listing 



lay :y iscounl'64 


'- ScOOO 

.'pnff' poinrs to quasi sprite 


4c 27 CO 

Imp start 


b9 2Dcl 

stpt Ida ly.y 




byie4 .# of quasi sprites 



sla vic.x 




byie2 .^ of fields 




c005 00 87 00 fields 

byleO. 135,,0.0 




;slarUine o' each lieJd 


ec 14 cO 

Cpx 3pr|no2 



= SdOOO :vic chip siarl address 



bne sipl 




byleO ;interrup! counL 


ae 12 cO 

Idx pntr 





CO be 

ac 03 cO 

Idy sprtno 





, 'or dll the following bit-syvitch parameters, the 





; low/ bits from the quasi sprtte parameter, and the 


H fe Ic 


byle255.254 252 248.240.224 192. t2e.O 

■ high bits from the value m the v\c chip are stored 


00 01 03 inask2 

byleO. 1.3. 7. 15. 31,63, 127 ,255 

: into Ihe vie chip ihe number of (he low and high 

.••inifializaiion code^iarts here" 

; bils ifsed depends on the number of quasi sprites 



— # 

." most Significant bits 


a9 7l 

Ida #S7f 



Ida VIC + 16 


8d Od dc 

sta SdcOd . disable timer as inlerrup! source 


39 15 CO 

and maskl ./ 


a9 01 

Ida 01 



sla temp 



sia ¥10 + 26 . enable raster as rnteirupt source 



Ida Khi,K 






and mask2.y 


adn dO 

Ida VIC f 17 .raster compare 



ora temp 


29 7t 

and #%01 mill .register, high bil 



sta wic + ie 


8dn dO 

sla vic * 1 7 

.y expand 


a9 00 

Ida #0 .set raster reg to 

c0d6 adi7d0 

Ida vic + 23 



sla VIC + 1 8 .top oi screen 


39 15 00 

and maskl .y 



sta intcount .inili^ize counler 


8d 13 cO 

sta temp 


a9 4e 

Ida jy<intrtn 



Ida expy,x 


8dl4 03 

sta 303T4 , set new interrupt veclor 



and mask2.y 



Ida #>inrrin 



ora temp 


8dl5 03 

sta $0315 


8d 1 7 dO 

Sla VIC + 23 




,1 expand 






Ida VIC + 29 



= k 



and maskl.y 

.•inlerrupl routine - performed when beam is 



sta temp 

,-al one of irte pre-5ei lield boundaries. 



Ida e^'px X 



Ida vk; + 25 


39 1ec0 

and mask2.y 

; only process hnlerrupfs caused by 



ora femp 

: Tasler beam compare register 



5la ^'ic + 29 




.set up colours 



bne myifq ; raster inierrupt 


a2 00 

Idx VO 



imp getoul 


ac 12 cO 

Idy pntr 

.ignore thFS ir^lerrupt 'i nol caused by raster 


b93f cl coin Ida colour.y j 



s P 



sta VIC 4- 39.x 

.clear inierrupt flag 



Ida shape,y 


a9 0l 

Ida #1 


9df8 07 

sla 2040.x 



sta vic * 25 




;»rasier beam is al tjounOary 






= * 


ec 03 cO 

cpx sprtno 

seleci appropnale qoasi sprrtes 



bne colrl 


20 8c CO 

isr sprtsel 

.finally, enable proper sprites 


ee 1 1 CO 

irtc intcount 



Idx pntr 


ae n cO 

fdx intcount 


ac 03 cO 

Idy sprtno 



cp« fieldno 



Ida enbl.x 



bne noend 


39 1ec0 

and mask27 

.resel counter if ai lasl field 



ora vic + 21 

c06b a2 00 

Idx ^0 



sta VIC f 2 1 


Se 11 cO 

stx intcount 






= ' 

.-memory area for ihe quasi spnie parameters follows' 



Ida VIC -1- 1 7 .set msb of rasler 

.-■■paramelersfor firsi set Of 4 'quasi Sprites"" 


29 7f 

and #W)1 1 1 1 1 1 1 ,regis]er to 

.— x.y lable — 


ad 1 1 dO 

sta VIC + 1 7 


Oa 50 96 

xy bytelO.80. 150.60. 80.30. 30,110 



Ida fields.ji ,&et raster lo inlerrupl 


00 00 00 

byteO 0.0.0,0.0 0.0 



sla VIC + 18 :ainexUield 

.— n high bits — 


adll cO 

Ida micount 

ci 3b 


xhi byie%0000000l 



bne nosysirq 

;— K expansion bils { 1 = expand) — 

: pefform system irq routine atler last field 



expx byte'VoOOOOOOlO 

. (syslem 

1 rrq Fouline shoufd be compfeted by 

.— y expansion bits — 

the time the beam is at Ihe lop of the screeri) 



expy byte%OO0OOOlO 


4c ai ea 

imp £ea31 

.— sprite enaWe bils = enable) 



= - 



end byie%OOQOiin 



= ■ . exit from interrupt 

;— colours — 





01 02 03 colour bytel.2 3.4 0.0 0.0 

COS 7 


tay .restore y regisler 

;— shape table pointers — 





aoai 92shape bytel2e.l29.l30.131 



is*. ;x register. 

cl4b 00 00 00 

by teO. 0.0.0 



pla .and accumulalor. Ihen 

."parameters for quasi spnieset 2-- 



rli .relurnfrom -nierrupl 


■■ = xy + 64 

^■■the quasi sprite setup routine follows." 


qs2 =^ • 

i'spriset' uses the quasi sprite lable indicaled 


be 96 0a 

bvtel90.150. 10,200. 180,170. 70.160 

;bv micouni . and uses iJie values <n Ihat table 


00 00 00 

.byleO.D. 0.0. 0.0. 0.0 

:as parameters lor real sprites 



.byte%00000010 .xhighbils 



■^ - 



bvie%0000 1 000 .xexpand 


ac 03 cO 

Idy sprtno 



byte%OOOOlO0O .yexpand 



fda VIC + 21 



by1e%00a0nil .sprite enable 


39 15 CO 

and maskl .y 


05 06 07 

byle5.6,0.0 .colours 



sta VIC + 21 


00 21 37 

byteOOO.033.055.055 ,shapes 


sprites to be used 

clSb 00 0000 

.byleO. 0,0.0 

.X y laWe {8 bytes) 


- B qs2 + 64 


ad 03 CO 

Ida sprtno 


qs3 = ' 



asl a 

:"parameter5for quasf spfiie3gohere 



sta spr(no2 


-= qs3t64 

.number of sprites per field 


qs4 = - 


32 00 

Idx #0 ,poimeriovic II address 

;- - parameters for quas- spnie 4 


adll cO 

Ida micounl ^pomier lo table 


- ■ qs4 1- 64 



asl a 


qs5 - ■ 



as4 a 

,eic [define as many as needed) 



a^ a 

.the above sprite parameters may set up or changed from 



asl a 

.basic (via a poke), or from a machine language program 



asl a 

. Ihe current settings of quasi spntes 1&2 



asl a 

, are merely lor demonstration purposes. 



sra pnir 

Th« Tronsoctor 


Volume 5. IssueOI 

Changing The C64's 
Screen Colours 

Bob Drake 
Brantford, Ont* 

I use a colour monitor with my C64 and I find the usual 
screen colours are no! those I want. Some colours of bor- 
ders, screens and type do not go together well. Some text 
colours are virtually impossible to read. When I use a 
television, black and white or colour. I find the same 
problem exists wilh different values than my monitor uses. 

Here is a short routine, under 350 bytes, that will allow you 
to use the function keys to change the border, screen and 
text colours until they meet your satisfaction. It is easily 
added to your own program. 

Line 1 02 sets the initial values for the 3 variables. By using a 
vector (an array with only one row) we don't have to repeat 
line 118 for each variable. Line 104 sets up the original 
screen with a black border, black screen and white text. You 
can set the initial colours by changing line 102. V(l) is the 
border, V(2) is the screen and V(3) is ^he character colour- 
Line 1 06 sets upper case with the CHR$(1 42) and prints the 
basic instructions. Line 110 gets a character from the key- 
board. Line 112 converts the key to its ASCII value. The 
C"HR$(0) is concatenated to KEYS to avoid a problem if no 
key is pressed. Since the function keys that we want have 
ASCII values of 133-137, the 132 subtracted drops legal 
values of K to between ! and4, A value of 1, 2, or 3 increases 
the corresponding V(K) value by one. A check is made to 
keep K in the right range (0-15), K = 4 causes an exit. Exiting 
erases all variables with the CLR, freeing the space taken by 
the array V(K), 

1 00 rem adjust c64 screen colour-r. drake 1 983 

102v(1)=0:v(2)=0:v(3) = 1 

104 poke 53280,v(1):poke 53281 M2):poke646,v(3) 

106 print chr${1 42) "^adjust screen colours" 

108 print"f1:border f3:screen f5:type f7:exit 

11 get keys 

112k = asc(key$ + chr$(0))-132 

114ifk<1 ork>41hen 110 

116ifk = 4tlien122 

118v(k)-v(k)+1:ifv{k) = 16thenv{k)=0 

120 goto 104 


For those concerned with saving a few bytes here is a 
packed version, about 100 bytes smaller. 

1 v(1) = 0:v(2)-0:v{3)-1 

2 poke 53280,v(1):poke 53281 ,v(2):poke646,v(3) 

3 print "Eladiust screen colours" 
:print"f1:border f3:screen f5:lype f7:exit " 

4getk$:k = asc(k$ + chr$(0))-132:ifk<1 ork>4then4 

5if k = 4then8 

6v{k) = v(k) + 1:ifv(k) = 16thenv(k) = 

7 goto 2 


Th« Transactor 


Volume 5, Isiue 01 

Simple Harmonic Motion 

PET Graphics Revisited 

With the advent of the VIC 20 and Commodore 64, Commo- 
dore users world wide have apparently forgotten the inher- 
ent graphic capabilities of ail the Commodore machines. 
The purpose of this article is to bring this fact to your 
attention, and allow you to actually see how terrific PET 
graphics can be. 

Normal screen resolution on the 40 column Commodore 
computers is 40 characters wide by 25 lines deep, or 1000 
characters. On the 8000/9000 machines, this has been 
increased to 2000 characters. Pretty boring stuff. Well, as 
numerous authors have pointed out in the past, clever 
manipulation of the Commodore character set can bring to 
you a pseudo high resolution display many times greater 
than normal. For example, in the Commodore character set 
are 8 '*bar" characters that are vertically one pixel apart. 
They are screen characters 1 00, 82, 70, 64. 67, 68. 69 and 99 
respectively. In the same context, there are also 8 bar 
characters that are horizontally 1 pixel apart. These are 101. 
84, 71 , 66. 93, 72. 89 and 103 respectively. 

Below is a program written to show just how good your 
computer can be in the graphics department, even without 
actual high resolution graphics. And, for an encore, this 
program could actually be used by many schools and institu- 
tions thai would like to supply more than a textbook exam- 
ple of assorted wave forms. In using this creation, you are 
able to plot, a sine, cosine, tangent and logarithmic wave- 
form. With further modifications, any wave form or graphic 
display could be created- Jusl let your imagination take over. 

At the very end of this article, below the program, are a 
number of complex mathematical formulas that can be 
reproduced in the language of Commodore, also known as 
Commspeak. With these formulas at hand, every wave form 
imaginabie can be reproduced with fair accuracy. You will 
find, though, that the major stumbling block in your way is 
the screen width of your computer. The larger the screen, 
the better the display. 

1 00 rsm ********''*■****■***■>***'«»«*•*»*»***** 

1 05 rem ' 

1 1 rem * 
1 1 5 rem ' 
1 20 rem ' 
1 25 rem * 
1 30 rem ' 
1 35 rem 

pseudo high res graphics 
rte - transactor magazine 
cbmSOOO + sp9000 : sw = 80 :se = 34768 
pet 4000 + c64:sw = 40:se = 33767 
4,0 basic :ss = 32768:nc=158 

c64 :ss = 1024:se = 2047:nc = 198 



It A- « * * * 

1 40 rem * a good line to place the variables from above* 

1 45 e%(0) = 1 00 : e%(1 ) = 82 : e%(2) = 70 : e%(3) = 64 

1 46 e%(4) - 67 : e%(5) = 68 : e%(6) = 69 : e%(7) = 99 
150 print chr$(147)chr$(1 42); : rem ' (clear) (graphics) 
1 55 print " please choose the v^aveform desired " :print 
160 print "(a) Sine " 

165 print "(b) cosine" 

1 70 print " (c) logarithm " 

175 print "(d) tangent" 

180 print 

185 input "your choice ";c$ : c = asc(c$)-64 

: ifc$<"a"' orc$>"d" then185 
1 90 on c gosub 260, 265, 270, 275 
195 input"step (fraction of 100) ";sp:sp = sp/100 
200 input "multiplier " ;mt 
205 input " vertical additive (max 200) " ;ad 
210 inpuf'start ";be 
215input"end ";en 

220 print chr$(147); : poke nc,0 : a-0 : d-int(ad/8) 
:e = ad-{d*8):b-25-d 

225forxt = 0tosw-1 ; pokess + b*sw + xt, e%(e) : next 
230 for xt = sstosestepsw : poke xt, 79 : next 
235 for z = be to en step sp : b = fn w(z) 

: if b > 200 then b = 201 
240 d = int(b/8):e-b-(d*8):b = 25-d 

: if sgn(b) = -1 then b = 
245 pokess-f b*sw-fa, e%(e} : a = a + 1 

: it a = sw thena = 
250 if peek(nc) then poke nc,0 : goto 1 50 

: rem * press any key to re-start - 
255 next: pnnt chr$(19): : end 
260deffnw(z) = absOnt(ad + mt*sin(z))) : return 
265 def fn w(z) = abs(int(ad -h mt*cos(z))) : return 
270 def fn w(z) = abs(int(ad + mt*log(z))) : return 
275 def fn w(z) = abs(int(ad + mt*tan(z))) : return 

Th« Tronsactor 


jfal^fpqjjf I«i>e01 

Mathemadc Funclions Expressed In Commspeak 



: Sec{z)-1 


: Csc(z)-1 


; Cot(z) = ci 

Inverse Sine 


Inverse Cosine 

; Arccos(z) 

Inverse Secant 

: Arcsec(z) 

Inverse Cosecant 

: Arccsc(z) 

Inverse Cotangent 

: Arccot(z} 

Hyperbolic Sine 
Hyperbolic Cosine 
Hyperbolic Tangent 
Hyperbolic Secant 
Hyperbolic Cosecant 
Hyperbolic Cotangent 

Inverse Hyperbolic Sine 
Inverse Hyperbolic Cosine 
Inverse Hyperbolic Tangent 
Inverse Hyperbolic Secant 
Inverse Hyperbolic Cosecant 
Inverse Hyperbolic Cotangent 

-atn(z/sqr{z*sqr(-z*z+ l)) + pi/2 
atn(sqr(z*z-l)) + (sgn(z)-]}*pi/2 
atn(l/sqr(z*z-l)) + (sgn(z)-l)»pi/2 
-atn(z) + pi/2 

Sinh{z) = (exp(z}-exp(-z)}/2 

Cosh(z) = (exp(z) + exp(-z))/2 

Tanh{z) = -exp(-z)/{exp(z) + exp(-z))*2+l 

Sech(z) = 2/(exp(z) -i- exp(-z)) 

Cosh(z) = 2/(exp(z)-exp(-z)) 

Coth(z) = exp(-z)/(exp(z) + exp(-z))*2 + I 

Arcsinh(z) = Iog(z + sqr(z*z+ 1)) 
Arccosh(z} = log(z + sqr(2*z-l )) 
Arctanh{z) = lug((l -f z)/(l-z))/2 
Arcsech{z)=:^log((sqr{-z*z+l)+ i)/z) 
Arccosh(z)=iog((sqr(z)*sqr(z*z+l)+ l)/z 
Arccoth(z) = Iog({z+ l)/(z-l))/2 







any value 

any value 
any value 
any value 
any value 

any value 
z> = l 


Note: The "pi symbol" cannot be represented by all of the Commodore machines. If this is the case, use the value of 

pi = 3.1415926 

Quarter Square Graphics 

Another technique for obtaining pseudo high resolution 
graphics is through use of the quarter square graphics 
characters. In a single character space, there can be 16 
different combinations of "quarters" - from completely 
blank (a space) to completely filled in (a reverse space) and 
every combination inbetween. This effectively doubles the 
resolution of your screen in both the vertical and horizontal 

This second program has been written by Paul Higginbot- 
tom. It was originally written for the 80 column machines 
but is easily adapted for 40 column or VIC 20. The setup 
subroutine at 9000 is where the changes will be made. 



screen must be followed by a simultaneous POKE to colour 
memory or the characters will not show up. 



9010 print 

90501n = 22:bs = 7680 + 22*ln:... 


8025 poke cs + p. 2 

VIC20 with expansion 


9010 print 
90501n-22;bs = 4096 + 22*ln 
9055 cs = 37888 + 22*ln 
8025pokecs + p, 2 

9010 print " 

9050 ln = 40 : bs= 1024 + 24*ln : . . . 

9055cs = 55296 + 24»ln 

8025 poke cs + p, 1 

Since VIC 20 screens have only 23 lines, it will also be 
necessary to adjust the number 50 at the end of lines 410 
and 430 to 46 {number of lines times 2). You will also nedd 
to change the first two numbers in the calculation for Y2 at 
lines 230 and 330- Start with: 

Y2'= 23 + 22*, . . 

Line 8025 is necessary for Kernal 2 C64s, POKing to the 

The Transactor 


Volume-S, U»veQ1 

Warning: The plotting routine does not check to 
see if the POKE value is outside of screen memory. 
The potential for POKing into BASIC text space 
exists! Make sure you SAVE your program before 
trying new functions. 

All the plotting efforts are performed by the two 
subroutines at 3000 and 8000. Subroutine 3000 
plots a line from XI, Yl to X2,Y2 by using subrou- 
tine 8000 to plot the points between the two coordi- 
nate pairs. When sub 8000 goes to plot a point, it 
must first determine if the target character space 
already contains a graphic. If it does, the new point 
must not interfere with the existing point in that 

Lines 100 through 500 are some sample functions. 
The last one merely plots random lines end- 
-to-end. Of course any of these could be substi- 
tuted by any of the mathematical functions shown 
in the table. 

Ifyou want to speed things up a bit, try substituting 
X for all occurences of XI and Y for all occurences 
of Yl in lines 100-500. Then change GOSUB 3000 
to GOSUB 8000. This will simply plot the points 
instead of lines between the two coordinate pairs. 
There is a tradeoff which you wili notice. 

The variable N at lines 210 and 310 is the number 
of half cycles that will be displayed, and is automat- 
ically adjusted for screen size. To show more or less 
cycles, increase or decrease the first number (ie. 
6*80/LN will show 6 half cycles or 3 complete 

The decaying cosine wave at 300 will start at the 
top left of the screen (Yl =50). The decay is con- 
trolled by variable DC. For higher decay rates, use 
lower values in DC. 

The last function at line 400 plots 5 random lines. 
With very little effort the same technique could be 
used to draw axes for the functions. The axes won't 
be disturbed by the waveforms thanks to the inge- 
nuity of subroutine 8000. Simply set XI =0 : 
Yl=25 : X2=159 : Y2 = 25 and GOSUB 3000 for 
the horizontal axis. Then set X1=0 : Yl = 50 : 
X2 = : Yl = for the vertical axis. 

Please write to us if simple variations can be made that would further 
increase the usefulness of these programs. RTE 

# V* *# ** ** if 

** if* 

50 gosub 9000 

100 rem ********** functions 

110 rem**** exponential curve 

120x1 -0:v1 -1 

130forx2 = 0to159 


150 gosub 3000 : yl =y2 : x1 =x2 ; next 

200 rem ***• sine wave **** 

210 n = 6*80/ln: = 3.1415926/180 :x1=0:y1 =25 


230 y2 = 25 + 24 * sin(x2 * n * c ) 

240 gosub 3000 :y1 =y2:x1 =x2:next 

300 rem **** decaying cosine wave **•* 

310n = 8*80/ln:c = 3.1415926/180:x1 =0 : y1 =50 : dc = 100 

320forx2 = 0to159 

330 y2 =25 + 24 * cos(x2 * n * c) * exp{-x2/dc) 

340 gosub 3000 : yl = y2 : x1 = x2 : next 

400 rem **** draw 5 random lines **** 

410x1 =int(rnd(tO*ln*2):y1 =int(rnd(ti)*50) 

420fori = 1 to 5 

430 x2 = int{rnd(ti)*ln*2) : y2 = int(rnd(ti)*50) 

440 gosub 3000 :y1=y2:x1=x2: next 

500 end 

3000 rem ********** plotaline ********** 

3010dx = x2-x1 : dy = y2-y1 : x = xl : y = y1 

3020 I = sqr(dx*dx + dy*dy) : if I = then 3040 

3030xi = dx/l:yi = dy/l 

3040 gosub 8000 : if (abs(x2-x)< = abs(xi)) and 

(abs(y2-y)< = abs(yi)) then return 

3050 x = x -h xi : y = y + yi : goto 3040 
8000 rem ********** plotx, y 

4 #+ #+ «+ ** if 


tx-int(>; + ir):ty = int{y + ir) :sq-am(tx and am, ty and am) 
p=tx/dv-int(ty/dv)*ln : pokebs + p,c(i(peek(p + bs))orsq) 

rem *»»***»*** setup ********** 

print ^'^a"chr${142); 
for i = to 1 5 : read c(i) : i(c(J)) = i : next 
fori^OIol :forj=^0to1 ; am(j,i) = (j + 1)''4ti : nextjj 
ln=80:bs = 32768 + 24*ln:dv-2:am = 1 : ir = .5 
data 32,123,108, 98,126, 97,127.252 
data 1 24, 255, 225, 254, 226, 236, 251 , 1 60 

The Transactor 


Volume 5, Issue 1 

Projectile Motion 

Once you understand the techniques of putting objects on your 
screen, you'll want to gel them moving. After all, what good is a 
sprite if it doesn't do anything, in this article we'll discuss some 
simple motion techniques using the laws of physics and mechan- 


Consider the screen of your computer as a 2-dimensional plane. 
To make an object move in 2 dimensions, you simply need supply 
a series of X and Y coordinates. Coordinate X usually represents 
horizontal position and Y is usually vertical position. Constantly 
changing the combination of these two positions will result in the 
illusion of motion. Calculating X and Y is a task determined by 
what pattern of motion you desire. 

Calculating the path of a projectile can be done in one of two ways: 
the hard way and the easy way. The hard way would be probably 
end up as a collage of imaginative calculations that somehow 
produce a fairly accurate simulation. The easy way is the logical 
way. In any book of physics or mechanics you'll find just about 
every formula for plotting the path of an object that is directly 
affected by a forward velocity, an upward velocity, and gravity - 
inotherwords, a projectile. 

Forward Velocity 

Every moving object on Earth has a forward velocity. Even if it 
only goes straight up, then straight down, it has a forward velocity. 
Of course this would be a forward velocity of zero. 

Velocity is represented as some unit of distance, per some unit of 
time (eg. 10 feet/second). On the computer, the units of distance 
will be a column on the screen. 

The units of time could be obtained from the internal clock, but 
this imposes certain unnecessary complications. First, the lowest 
unit is seconds which is an awfully long time unless the velocity is 
very low too. Second, when the seconds reach 59, it is up to the 
programmer to add the minutes times 60. 

The solution is to simulate time with a simple FOR/NEXT loop. 
This way you can express time in any unit such as tenths of 
seconds or even 3rds of seconds if you wish. Also, this avoids the 
potential for losing time since the clock will not increment until 
you have used the current time for your calculation, and subse- 
quently used the results of that calculation for the plot. So far our 
formula will look like: 

1 00 fv = 1 . rem forward velocity 
120fort = 0to159step.2 
130x = fvt 

160gosub8000: rem plot a point 
180 next 

The subroutine at 8000 is from Paul Higginbottom's plotting 
routine in the previous article. Note: please see the program at the 
end of the article - the programs presented in this text are meant to 
show the progression to the final program. 

As you can see. time will be incremented from to 159 in steps of 
0.2, simulating a fifth of a second clock. The X coordinate is 
calculated and delivered to a subroutine that plots the coordinate 
on the screen. This subroutine could be replaced by one that 
changes the coordinate of a sprite. 

But no upward velocity has been given. In this case the projectile 
will simply move horizontally until the clock stops. 

Upward Velocity and Gravity 

This is the next element of the path of a projectile. It too is 
represented in distance per time unit, but unlike forward velocity, 
it is affected by the phenomena of Gravity. 

Gravity is a unit of acceleration. When you drop an object, it starts 
with a velocity of zero and accelerates. Gravity is usually given as 
-32,2 feet per second squared. Different locations on Earth have 
gravitational constants slightly different than this depending on 
height above/below sea level, etc, but we'll use the natural 
constant for now. Further, if you go up high enough to drop your 
object, it will accelerate to a maximum velocity of about 119 mph, 
but we won't be doing that either. 

The formula for our Y coordinate becomes the upward velocity 
multiplied by time, minus the effect of gravitational pull: 

Y = UV'T- V2G*P 

The program becomes: 

1 00 fv = 1 : rem forward velocity 
11 uv = 45 : rem upward velocity 
120fort = 0to159step.2 
130x = fvM 

140y = 5 + uvM".5"32.2Mt2 
1 60 gosub 8000 : rem plot a point 
180 next 

The values at the beginning of line 140 is an initial height so that 
the projectile does not start from elevation. This brings us to the 
next consideration. 

Impact and Decaying Velocity 

As you well know, what goes up must come down. When our 
object hits the Earth, it will bounce, unless our object is made of 

r The Transactor 


Valuiw 5j lnue 01 

wet cement. Upon impact Itie object loses some of its initial 
upward velocity. Tectinicaliy this is referred to as decay or a 
damping factor. However, our program poses another problem in 
its present form. 

After the object impacts, it will want to continue back up. Logically, 
time has become zero again and the formula rept^als itself at the 
new decayed upward velocity. But our program shows time always 
incrementing. Therefore we must have a method of resetting the 
clock when the new cycle begins. The FOR/NEXT loop is the 
target for our next modification. Instead of representing time, it 
will now simply act as a counter, and time will be calculated 

We need also know when the object impacts, Inotherwords, where 
is ground. Since we started from an initial height of 5, well say that 
ground is at 5. So when our calculation for Y yields a result less 
than 5. we know the object has bounced. This is also the point at 
which the decay takes effect. In this example, only upward velocity 
will decay - the forward velocity of a bouncing object is shown to 
be fairly constant, although you could impose damping on it too if 
you wish- The program becomes: 

1 00 fv = 2 : rem forward velocity 
110 uv = 45 : rem upward velocity 
120forj = 0to159 
130x = fv ' j 

140y = 5 + uv * t-.5*32.2 * tt2 
150ity<5theny = 5 : t = : uv = uv-.9 
1 60 gosub 8000 : rem plot a point 
170t = t + .2 
180 next 

Notice that FV has been changed to 2 in line 100. This simply 
allows more cycles on the screen to show the effect of impact. Line 
1 50 says if Y is less than 5 then Y equals 5. This little bit of cheating 
makes the ball bounce at the same vertical spot on the screen each 
time. Time is reset to zero and upward velocity is reduced by 10 


With the program now in its final form, several possibilities exist. 
You can vary gravity slightly to show the effects of impact at 
different spots on Earth, or vary it a lot to simulate gravity on other 
planets. Your starting point does not necessarily have to be the 
same as the point of impact when the object comes down - you 
might project your object from some much higher elevation (eg. a 
cliff). Also, the object might not be the bouncing type - bombs 
don't usually bounce. If your object is the type to bounce, try 
different decay values for objects made from different materials. 
Depending on how hard they bounce might affect the forward 
velocity too - something to think about. 

Remember one thing most - computer simulations are all too often 
a task of logical thinking. The actions and reactions of an actual 
physical object can usually control the computer to demonstrate 
these actions, and thus obtain the desired result. Think first, 
program later. 

Portability Notes 

The program has been set up for 80 column machines. Line 9010 
prints two HOMEs to clear any windows, a clear screen, foHowed 
by a set graphics mode - CHR$(142). For 40 column PET/CBMs 
simplychangeLN-80toLN = 40 in line 9050. If you have entered 
Paul Higginbottom's quarter square graphics routine from the 
previous article, you only net^d to add lines 500 to 590 below. 
Notice how only the subroutine at line 8000 is called - subroutine 
3000 has been omitted here. Commodore 64 and VIC 20 users will 
need to make the same changes noted in the previous article. 

As it stands, the program will leave a trail along the path of the 
projectile. To remove the trail, add: 

8005 poke bs + p, 32 

Line 8005 will poke a space into the previous POKE position thus 
erasing whatever was there. This is all that is required for all 
machine models. 

Question: How would you make the ball bounce off the right hand 
edge of the screen (ie. a wall). Hint: if x>79 then x^lSO-x. Use 
FV = 7:UV = 55. 

50 gosub 9000 

500 rem " " bouncing ball - * ' * 

510fv = 2:uv = 55:y1 = 1 : g-"32,2 , dc = .9 

515 rem try fv= 15 : uv = 45. also fv = 0.2 

520torj = 0to(ln'2-1)/fv 

530x = fv'j 

540 y = y1 + uv t + .5'g * ftt2) 

550 if y<y1 then y = y1 : t = : uv = uv^dc 

560 gosub 8000 : rem piot a point 

570t = t+.2 

580 next 

590 end 

8000 rem *'*'*'*'»' plot x, y *-•-'"«»" 

8010tx = int(x + ir):ty = int(y + ir):sq = am(txandam, tyandam) 
8020 p = tx/dv-int{ty/dv)'ln : poke bs + p, 

c(i(peek(p + bs))orsq) 
8030 return 

9000 rem 

* * + 

■A -k -^ 

it * 


* *■ * 

* * 

9010 print "^g "chr$(142); 

9020 dim c{15),i{255),am{1.1) 

9030 for i - to 1 5 : read c{i) : i(c(i)} = i : next 

9040 for i = 0to1 , forj = Otol : am(i,i) = (|-f 1)Mti nextj.i 

9050 In = 80: bs-32768 + 24*ln , dv = 2 : am= 1 :ir = .5 

9060 data 32, 123, 108, 98. 126, 97, 127,252 

9070 data 1 24, 255, 225, 254, 226, 236, 251 , 1 60 

9080 return 

The Transactor 


Volume 5, Issue 01 

Voice For 
Commodore Computers 

Vikash Verma 
Calgary, Alberta 

The idea of voice communicaiion with the computer is fascinating, 
to say (he least. There are many ICs in the market today which can 
synthesize human speech such as the Votrax SC-01 and those in 
Texas Instrument's Speak & Spell, 

There are two aspects of voice communication - listening and 
speaking. The above ICs accomplish only one of these activities - 
speaking. Listening, which is also known as speech recognition, is 
far more complex. Nevertheless, microcomputer based speech 
recognizers such as Voiceteks^ Cognivox and Voice Input Module 
sold by MCE, Inc. are also available in the market, albeit at higher 
cost , 

The present article deals only with interfacing one of the speech 
synthesis devices marketed under the name "Sweet Talker'^ by 
Micromint, Inc. (561 Willow Ave, Cedarhurst, NY, 11516, 
516_374_6793). This device is based on the Votrax SC-01 chip. In 
this article Sweet Talker will be interfaced with the User Port of the 
CBM machines to add a new dimension to games and educational 

The voice response from the computer in human speech can 
improve certain games enormously and can open new avenues for 
adding humour to games or zip to educational software. Pre- 
-schooi children who cannot yet read, can interact with the 
computer through voice much beUer than through written instruc- 
tions on display CRT. Computers can speak out the instructions 
such as "Press Y to start the i^ame" to a child who cannot yet read 
such sentences from the screen. 


Sweet Talker requires dual power supply voltages of +5V and 
+ 12V. The +5Von the cassette port (pin 2 or B) can be used for 
one. Pin 4 or 5 of JIO in the PET/CBM can be used for the -fl2V 
supply but VIC 20/C64 users will need an outside alternative. 

The fundamental phonetic alphabet, called phonemes, are trans- 
ferred to the speech synthesizer on six parallel lines P0-P5, 
allowing 64 possible phonemes. Micromint supplies a list of the 64 
phonemes with Sweet Talker. There are two pilch control lines, 11 
and 12, and three more connections, STB, A/R, and Enable, for 
handshaking purposes. Each phoneme is uUered by Sweet Talker 
for a pre-determined duration varying from 40 ms. to 250 ms. 
Figure 1 shows the interfacing of a CBM with Sweet Talker, 
leaving pins II and 12 unconnected causes the built-in random 
pitch variation to be in effect. 


The program "Talking Clock" shown in listing 1 was developed for 
PET/CBMs (see ViC 20 and C64 notes below). It demonstrates how 
the hand-shaking is performed to communicate with the speech 

The program sounds off the time of day once eveiy minute, or by 
pressing any key at any time. Lines 200 and 210 allow you to 
synchronize the internal clock with the present time of day. Line 
150 prepares the pin CAl of the computers' User Port to detect a 
negative transition (voltage going from high to low) sent by Sweet 

The heart of the program is the subroutine from 440 to 500 which 
sends the 6 bit code of the phoneme to be pronounced and waits 
until the phoneme enunciation is complete. Line 440 place the 
phoneme code on the data output lines. Lines 450 through 470 
send a pulse to Sweet Talker via CB2 to indicate that a valid 
phoneme code is available on the data lines. Sweet Talker then 
begins to produce the sound corresponding to the particular 
phoneme code. After a pre-determined duration, Sweet Talker 
drops line STB connected to pin CAl from a high to low voltage to 
indicate that it is ready for the next phoneme. The computer waits 
for this negative transition in line 490. The DATA statements 510 
through 760 contain the ASCII equivalent of phoneme codes of the 
various english words required for this demonstration. 

+ I1V t5V 













_ wo. a. 




PIO ^ 

- 11 
^ f 

Pro 1 






DJO 5 




t? -J o 
14 -4 J 

19 «u - 

— 16 * 

— 29 
jTl Eh ^iJkCt > 

t PAZ "H <^"^'* 

Ths TraniGctor 


Volumes, I j>uo 01 

VIC 20 Notes 

200 printcl $c1$c1$c1$c1$c1$" to set c ock enter time 

in the format ; hhmmss " 

in ine 140, RO and PC should be 371 36 and 37148 respectively. !n 

210inputli$ ; printc2$; 

linelSO, 254 should be replaced by 239. In line 90, SP should be 

220t$ = ti$:printcr$;fe!t${t$,2)'^;"mid$(t$,3,2)":'; 

assigned a value of 1, and line 490 should be replaced by: 

mjd${t$,5} t$-left$(t$,4) 

230 mr$ = am$ 

490 if (peek(tr) and 1 6) <> 1 6 then 490 

240 \^i = val{left$(t$,2)) : mn = vaf(right$(t$.2)) 

250 geta$ . ifaSO " " ort$<>ts$lhents$ = t$ : goto270 

The changes in lines 1 50 and 490 are due to the fact that on the VIC 


20 User Port, CBl has been made available in place of CAl . 

270a$ = e$: gosub410: ifhr = Othenhr= 12 : goto300 

280ifhr>12thenhr = hr-12: mr$==^pm$ 

290 ifhr = 1 2thenmr$ = pm$ 

Commodore 64 Notes 

300 a$ = b${hr) : gosub41 : ifmn = 0goto370 

310 ifmn<10thena$ = b${0) : gosub410 

Replace lines 140 and 150 by the following: 

320ifmn< = 20then340 

330 m1=inl(mn/10) : mn = mn-m1'10 : a$ = c$(m1) ; go- 

140 ra = 56576: rb = ra+1 : da = ra + 2 : db = rb + 2 


: ic = ra+13 

340a$ = b$(mn): ifmn>0thengosub410 

1 43 poke db, 255 : rem set port b for a 1 outputs 

350a$ = mr$: gosub410 

146 x = peek(ic) . rem dummy read to seticr 

360 goto220 

150 poke da, peek(da) or 4 : rem set pa2 for output 


380ifmr$ = am$thenmr$= "litmh®)* ' 

and rep ace lines 440 through 490 by ihe following: 

390ifmr$ = pm$thenmr$- "m(m'' 


400 golo350 

440 poke rb, x : rem send ascii of phoneme to sweet talker 

41 a$ = a$ + d$ : for a = 1 to len(a$) 

450 rem send one shot pulse on pa2 

420 X = asc(mid${a$.a,l )) : gosub 440 

460 da = peek{ra) : poke ra, da or 4 

430 next a: return 

470 poke ra, da 

440 poke ro, x . rem send ascii of phoneme to sweet ta ker 

480 rem wait for nag transition on f ag2 {pin 8) 

450 poke PC peek{pc) or 224 

490 wait ic, 16 

460 rem send one shot pulse on cb2 

470 poke pc. (peek{pc) and 31) or 192 

480 rem wait for -ve transition on cal 


490 if (peek{f rj and 2) <> 2 then 490 

500 return 

Ciarcia. S. 'Build an Unlimited-Vocabulary Speech Synthesizer'. 

510datathetimeis, 83>^h@)l>kr» 

BYTE Sept 1981, pp 38-50 

520 data 0,444 

530 data one, -21m 

MOS Technology Inc. MCS6522 Versatile Interface Adapter Data 

540 data two, '( 

Sheet, March 1977, 24 pages. 

550 data three, 9 + <) 

560 data four, ]55 + 

570 data five, h)o 

Talking Clock 

580 data six, -^-iyc*- 

590 data seven, *-@o@m 

90c1$ = Ghr${17):c2$ = chr$(147);sp=16 

600 data eight, e)' 

1 00 printc2$c1 $" talking clock" 

610 data nine, mh)m 

1 10 printclS" (c) vikash verma.cagary " 

620 data ten, -am 

1 1 5 pnntcl $cl % " this clock will sound off " ; 

630 data e even, jxeo@m 

1 20 print " the time of day ^ 

640 data twelve, '-axoc 

1 25 pnntcl $ " once every minute " : printcl $c1 %" or " 

650 data thirteen, ^Qi + ^.m" 

1 30 printcl $ " whenever any key is pressed " 

660 data fourteen, " 5+',m" 

1 35 cr$ = chr$(1 9) : fori = 1 tol ; cr$ = cr$ + chr$(1 7) : next 

670 data fifteen, " i '.m" 

136fori = 1tosp; cr$ = cr$+ - ' : nexti 

680 data sixteen, "*-iyc'^*,m" 

140 ro = 59457 ;pc = 59468:dd = ro + 2:fr = pc + 1 

690 data seventeen, "*-@o@m',m" 

: pokedd,255 : rem set ora for output 

700 data eighteen, "e)d,m" 

150 pokepc,peek(pc}and254 ; rem set per to detect -ve 

710 data nineteen, "mh)m',m" 

transition on cal 

720 data twenty. ^*-am',^ 

160dimb$(20),c$(5) d$-"»" ; am$- -f!)>bal " 

730 data thirty, "9:+')" 


740 data forty, 5+*) 


750 data fifty, ]i]') 

1 80 fori = 0to20 : reada$,b$(i) nexti 

1 90 fori = 2to5 : reada$,c$(i) ; nexti 

Th« Transoctor 


Volume 5j lisue 01 

Hardware Corner 

Domenic Def rancisco 

Chris Zamara 
Downsview, Ont. 

Welcome to Hardware Corner, This is the firsl in a series of 
articles written to help you learn about the input/output 
capabilities of your PET VIC. orC64. In this article, we will 
look at the user port, and how to use the chip that controls 
this port from BASIC. In future articles, we will build up on 
this information, and connect things up to the computer, 
such as LEDs, seven segment displays, stepping motors, and 
other assorted lights, bells, and whistles. 

Introducing The USER PORT 

The User Port, physically, is a small rectangular slot on the 
rear of your computer which accepts a standard edge card 
connector. Coming from the connector are a number of 
lines. These lines carry electrical signals which you can 
control via software. The user port lines can be accessed 
from BASIC via PEEK and POKE just like any other memory 
location. This PEEKing and POKEing controls an I/O chip 
in the computer which is connected to the user port. The 
chip is a 6522 in the PET and VIC. and a 6526 in the C64. 

This accessing scheme is known as MEMORY MAPPED 1/ 
O, and is used in controlling everything external to the CPU, 
such as the video, sound, keyboard Joysticks, etc. By POKE- 
ing values into certain memory locations, the user port can 
be set up to operate in different modes, and data can be sent 
out on the port. By PEEKing locations, the current stale of 
the port can be read. By using the port in this way, the 
computer can control or communicate with a variety of 
external devices, which may be as simple as a row of LEDs, 
or as complex as a disk drive, or even another computer. 

On the user port, there are a number of different types of 
lines available. The most flexible of these lines are those 
belonging to the PARALLEL PORT, The parallel port con- 
sists of 8 lines, labelled 0-7, each one individually usable as 
either an input or an output. When a line is used as an 
output, the computer can make that line either low (zero 
volts), or high (+5 volts}. When a line is used as an input, 
the computer can sense whether the line is being held high 
or low by an external device- This is the essence of com- 
munication between the computer and any other periph- 

eral Besides the lines of the parallel port, there are linos 
which control the transfer of information (handshaking 
lines), and other lines performing complex functions such as 
serial data transfer, and timing 


First of all, the parallel port. How do we use it? In the 
preceding paragraph it was mentioned that each of the 8 
lines may be independently used as an input or an output. 
To tell the I/O chip which lines are inputs and which are 
outputs, a value is POKEd to the DATA DIRECTION REGIS- 
TER. The data direction register for the parallel port is 
location 56579 on the C64, 59459 on the PET, and 37138 on 
the VIC (you can find these register locations, along with 
other important data about the user port, in Transactor's 
reference issue). Each line on the user port corresponds to a 
bit in the data direction byte. If a bit is set to zero, the 
corresponding line on the port is an INPUT. If the bit is set to 
a one, the corresponding line is set as an OUTPUT. 

For those of you not familiar with binary, see figure 1 . For 
each line that is to be an output, look up the corresponding 
number in the right hand column of the chart. Add up all of 
these numbers to get the value to POKE into the data 
direction register. For example, if all lines are to be outputs, 

1 +2 + 4 + 8+ 16-h 32 + 64+ 128 = 255 

Bit Values 

Btl Dec 


























Figure 1 

Tho Transactor 


Volume S, Issue 1 

In the C64, we would POKE 56579.255 to set all the lines as 
outputs, and we could then change the level of all lines on 
the parallel port. If we wanted lines through 3 to be 
outputs, and lines 4-7 to be inputs, we would add: 
1+2 + 4 + 8=15. and wewould use POKE 56579.15. In this 
configuration, we could change the levels of lines 0-3, and 
read the state of lines 4-7. 

is a brief description of the lines available on the PET, VIC, 
and C64 computers. A more detailed description of the lines, 
and the method of using Ihem will be given as they are used 
in future installments. 

Control Lines Available On Tlie PET's User Port 

Now that we have set up the data direction register, we can 
control the port itself through the DATA REGiSTRR. This 
register is located at 59471 on the PET. 37136 on the VIC. 
and 56577 on the C64. The bits in this register also corres- 
pond to the lines on the parallel port, but a T corresponds 
to a high voltage level on the port, anda'O' corresponds to a 
low level. This means that if we had previously set line 3 as 
an output using the data direction register, and we POKEd 
the value 8 into the data register {the corresponding value 
from figure 1), line 3 on Ihe port would have 5 volts present 
on it. Likewise, an input line could be read via a PEEK to 
detect whether it is being held high or low by an external 
device. To find out whether an input line is high, PEEK the 
data register, then AND the contents with the corresponding 
value for the desired line from the table. To make the above 
procedures more clear, examine the following short BASIC 
program, written to work on the C64 (to use on another 
machine, just change the data direction register and data 
register locations in lines 20 and 30j, 

A + 

10 rem " parallel port example for c64 

20ddr = 56579 : rem data direction register 

30 dr =56577 ; rem data register 

40 poke ddr,31 : rem set lines 0-4 as outputs, 

lines 5-7 as inputs 

50 pokedr,1 ; rem make line high, 1-4 low 

60 p = peek(dr) : rem examine port 

70 if p and 32 then print "line 5 high '^ 

80 if p and 64 then print "line 6 high" 

90 if p and 128 then print "line 7 high" 

The above program first sets the data direction register, 
POKEs to the data register to set line high and lines 1-4 
low, and then reads the port and reports which of ihe input 
lines 5-7 are high. This is a simple example of how to use 
the parallel port, and in future articles we will be connecting 
things up to the port, so the above program might turn on an 
LED, and then report the state of three toggle switches. 

CAl : An input which sets a flagon an input pulse, andean 
be programmed to generate an interrupt when the flag is set, 
or latch the contents of the parallel port. 

CB2 : As an input, can set a flag like CAT As an output, can 
be used as a programmable shift register. When used as a 
shift register. CB2 can be used for serial data transmission, 
or for generating sound through a speaker. 

Control Lines On The VIC 20 

CBl ; Similar to CAl in the PET 

CB2 : same as CB2 in the PET 

CASSETTE SENSE ; Detects whether the cassette PLAY 

button is pressed. !f no cassette is 
connected, can be used as an input or 

JOY - JOY 2 : Three of the four input lines from the 

joystick port (can be used as outputs if 
no joystick is plugged in). 

Control Lines On The Commodore 64 

FLAG : similar to CAl in the PET 

PC : Indicates when data on the parallel port is valid. 
Often used in conjunction with FLAG for parallel 
data communication. 
CNTl. CNT2 : Inputs used in conjunction with interna! 

timers to measure input frequencies and 
pulse widths. Also aids in serial communi- 
cations when using the SP line. 
SP Used for serial transmission. 
PA2 : An extra I/O line from parallel port A, 

Next Issue. . . 

And The Other Lines 

The parallel lines described above will be used in almost all 
upcoming projects, but the other, more complex control 
lines which are available should also be mentioned. Below 

Now that we have established some background theory 
about what the user port is and how to control it from 
BASIC, we are ready to start really using it! In the next issue, 
we will look at how to physically connect circuits to the user 
port, and use a row of 8 LEDs as an example. 

The Transactor 


Vofume 5, 1»ue01 

How Cartridges Work 

Daniel Bingamon 
Batavia, Ohio 

Have you ever wondered how a Commodore 64 cartridge slarts up 
a game automatically without you giving any commands? The way 
it is done is fairly simple if you know a little machine language. 
Here we are going to show you how to use this cartridge controi to 
make the computer start up with different colors. 

When you start up your computer or reset it, it must have a place to 
go on start. This starting point is determined by the RESET vector. 
Upon reset the 6510 loads the program counter (a place in the 
microprocessor the computer uses to know were it is at) with the 
address that is in the reset vector. The 6510 "knows" that the reset 
vector is stored at $FFFC and $FFFD in ROM. Its contents is 
address $FCE2. 

The microprocessor transfers execution to $FCE2, the RESET 
Routine. One of the first tasks performed is a subroutine at $FD02 
that tests for the presence of a cartridge. This test compares the 
characters 'CBM80' to the contents of locations $8004 through 
$8008. If ^CBM80' is present and the Most Significant Bit is set to 
one in the letters ^CBM', then the KERNAL ROM does an INDI- 
RECT jump through location $8000 (32768 in decimal). Loca- 
tions $8000 and $8001 are the first two bytes of the cartridge and 
are used to store the address of the start of the cartridge program to 
give the cartridge control. 

The next two bytes. $8002 and $8003, are the NMl Reset address. 
This is the address the 64 will jump to if RUN/STOP-RESTORE is 
pressed, but again, only if 'CBM8U' is present at $8004. 

Cartridge Simulation 

Because there is RAM at location $8000 (unlike the VlC-20 which 
is normally blank in its cartridge space), we can fool the C64 into 
thinking it has a cartridge plugged in. When there is a real 
cartridge in the computer, wiring is provided to turn off the RAM 
and connect the cartridge instead. This program will not work if 
you have a cartridge in the computer. 

If you look at this program with a machine language monitor, 
notice the start-up code 'CBM80' at $8004, It must show exactly 
like it is listed here in order to gain control of the computer: 

.:8000 09 80 2f80c3c2cd38 
.: 8008 30 Start Of Program. ., 

The space marked 'Start Of Program' is where the cartridge 
program starts. In general, a cartridge program could start any- 
where in the cartridge, but the program in our simulated cartridge 
will start here. Now when the computer is reset, it will go to 
location $8009 and execute that program. There better be some- 

thing there or you will probably get a non-recoverable crash, and 
turning off the computer will fix things - a reset button may not get 
you out of this one. 

The Start Of Program begins with some initialization routines just 
like the ROM reset routine. First, the screen initialization at $FF81 
puts the screen in the right place. After that is done a call is made to 
$FF84 which initializes 1/0 devices. Some cartridges never use 
this, but I find things run much smoother when you do use it. The 
next thing this program does is execute the routine called 
'CLRCHN' to dear 1/0 channels and its address is $FFCC. After all 
this is done I store the new colors to the graphics chip and do an 
indirect jump through $A0O0 which starts up BASIC (ie. power up 
message, bytes free, etc). However, this jump would be replaced 
by the cartridge program which would continue on from there. 
With this technique you can test your cartridge program in RAM, 
which later you can have 'burned in" on cartridge. 

Also included in this program is a section that sets the NMl vector 
to change your screen color to the new default upon hitting the 
restore key and continue running any BASIC programs without 
stopping them, although the run/stop key by itself still works. 

Listed with this article is the BASIC loader program that pokes this 
machine language into memory. You will be notified by the 
program if you have mistyped any DATA. To make this machine 
language to take effect type 'SYS64738' and upon restart you will 
notice something different. Please SAVE this program before typ- 
ing the SYS statement. 

Use SUPERMON or any other equivalent monitor to follow the 
flow of this program. Please type "POKE 56, 1 28:CLR' to protect the 
program from strings writing over it. 

Program Listing: 

5 printchr$(l 47) : print " cartridge simulator ' 

6 print ; print " by:daniel bingamon 
10 for I = 32768 to 32838 

20 read a b = a + b : poke i,a 
40 next 

50 if b<>7693 then print " data error " . end 
lOOdata 9,128. 47.128,195,194,205 
110 data 56. 48, 32J29. 255, 32,132 
120data255, 32,138,255, 32,204,255 
130 data 169, 18. 32. 56,128,169, 46 
140data141, 24, 3,169,128,141, 25 
150 data 3,108, 0,160. 72.152, 72 
160 data 138, 72, 32,204,255. 32, 56 
170 data 128, 104, 170, 104,168.104. 64 
180data169. 11,141, 32,208,141, 33 
190 data 208, 169, 0,141,134, 2, 96 
200 print: print "sys64738 will begin simulation" 

The Transactor 


Volume 5, Issue 01 

Generator Programs 

Jim Butterfield 
Toronto, Ont. 

A "generator" program is a program that writes another 
program. This can open up numerous possibilities: tell a 
generator program what you want, and it will write (he 
program tor you. Til describe a much simpler generator 
program: one that allows easy, error-proof entry. 

The previous Transactor contained a program to copy files 
on the Commodore 64 with a 1541 disk. Much of the 
program was in machine language. Some users who mighf 
find the program handy don't know how to enter the 
hexadecimal code that comes with machine language. Even 
those who do have another problem: one mistake can blow 
the whole program. I decided to write a generator program 
to help with these problems. 


The "easy" way to get machine language into a computer is 
to encode it into DATA statements. That way, the user 
simply types in Basic statements without having to learn 
how to use the machine language monitor. So far, we 
haven't checked for errors. 

We can try to guard against errors by introducing a check- 
sum system. The simplest checksum would work this way: 
add all the numbers in the DATA statements together, and 
check to see that the total matches some sort of correct sum. 
That's OK for small programs; but bigger ones, which are 
likely to have several entry errors, would call for the user to 
proofread everything over and over again until the check- 
sum matches- it would be better to have a scheme where a 
specific data line is signalled. In this case, of course, each 
ine must be given its own checksum. 

There^s another problem with checksums: it's too easy for 
errors to "balance out", A simple transposition, for example, 
with the user typing 35,62 instead of 62,35 would produce 
the same total either way; the checksum wouldn't catch the 

Checksums can introduce other pitfalls, too. Suppose that 
we have a separate checksum for each line of data. !f a line is 
omitted, this may not be spotted - it can't have a checksum 
error if it's not there. One other thing; I wanted to avoid a 
scheme that would force an exact number of data elements 
per line. If you have, say, a 63! -byte program it would be 

hard to fit it into an number of DATA statements each 
containing the same number of elements. 

First Planning 

DATA statements should start at line 1 and go consecutively 
from there. Each DATA line should be separately check- 
summed. If an error occurs, the DATA line with the error 
should be identified. 

The checksum should operate along the following lines. It 
should include the DATA line number, so that we'll spot the 
problem if a line is incorrectly entered with the wrong 
number. It won't be a simple addition - if we multiply the 
total by three before adding a new value, each will have a 
different weight. To ensure the checksum doesn't become 
too large and unwieldy, we^ll trim it with an AND of 63. And 
we'll set the checksum aside by making it a negative num- 

Where do we start on all this? The code started out along the 
following lines: 

L = PEEK(63) + PEEK(64) ^256 

This gives us the DATA line number. New rule: if we make 
sure all DATA lines are lower than 256, we can shorten this 

L = PEEK{63} 

By the way. location 63 is valid for VIC and Commodore 64; 
the proper value would be 60 for PET/CBM. It might be 
easier to set variable M to 63 and use PEEK(M); that would 
make the program easy to modify for PET. 

Now. the last line of DATA will be line 200, and it will 
contain a value saying how many lines of DATA, plus one, 
are in the main sequence. So we will do a boolean check on 
the line number. L; 

H = (L - 200) 

H will be "true"' if we have reached DATA line 200; other- 
wise it will be false. We know that the following program will 
be looking to see if the lines are in the right sequence. Line 

The Transactor 


Volumo 5, Issue 1 

200 will be out of sequence, of course, because it has a 
special meaning. So, when we reach line 200 (with H 'Hrue" 
we'll arrange lo pass the sequence test by changing the 200 
to the expected next Une, with: 


A value which is ''true" or ^^false" is called a boolean 
variable. We're going to create a couple more. Variable V 
will tell us if we have moved to a new line of DATA; it checks 

the line number, L, against the previous line number, R, If 
they are the same, we're on the same line as before. li not, 
weVe moved lo a new line: 

V = (R<>L) 

V will be "true" if we have just moved to a new line. If so, we 
want to check the line we have just left to see if there are any 
checksum errors. S is a boolean variable signalling an error; 
it is set only when end-of-line is true. Thus, we know that S 
depends on V, new-line, and that we must write something 
likeS = (VAND. ...). 

When we hit the first line, we don^t want to check the 
previous line for errors . , . there is no previous line. So we'll 
insist that S. the error flag, can be set only when the 
previous line number (R> is greater than zero. This takes us 
toS = (VANDR>0.. .). 

If all other conditions are satisfied - new line, and not the 
first - we actually check lo see that the checksum is correct. 
The arithmetic is set up so that the checksum should always 
work out to be 63, So our checksum error boolean S is set 

S = (V AND R>0 AND T063} 

S is "true" if and only if there has been a checksum error on 
the previous line. We won't print the error statement yet. 

If we have moved lo a new line (V is "true"), we'll set the 
checksum value to beequal to the line number; as we go 
through the line's DATA statements, this will be mixed in 
with other values: 


If this is a new line {V is true) and there is no error (S is false) 
we need to make one more check: is the line number in 
sequence? Here^s how we do Ibis: we add one to R (the 
previous line number), and check to see that the new value 
is equal to L. the new line number. If it does not, set S to true 
and flag an error, 


Now, let's do the checksum calculation. T is the checksum 
total; each time we read a chunk of DATA, we multiply the 
previous value of T by three and add the new DATA item; 
then we trim the result lo the range 0-63 with an AND 

T = (T*3 + X)AND63 

Now we're ready to report an error, if S is true; 


Note that we don't print line L, the new line we have just 
reached. Instead, we print R. the previous line number; or if 
a line is missing, the previous line number plus one. If we 
have an error, we'll also record this into variable B: 


A value of -I is equivalent to logic "true", by the way; so E is 
a boolean and will become true and stay thai way if S is ever 
true. We could alternately write E = S OR E and even drop 
the spaces to write E = SORE, but the above coding works 
equally well. 

Now we make our "previous line number", R, equal to the 
current line number. L; and if we are not at line 200 (that's 
indicated by variable H, remember?) we may go back to do 
the next data READ: 

R = L:IF NOT H GOTO. . . read statenneni 

!i we don't go back, we have read all our DATA statements, 
and boolean variable E will tell us if any of them had errors. 
If so. we stop so that the errors can be fixed; 


From here on. we go back to the beginning of the DATA 
statements with RESTORE and read them all in again. This 
time, we know they are correct and can put them to work - 
or to the disk - right away. We skip the negative values: they 
are the checksum. 

Disk or Memory? 

The program given in the Transactor wrote a disk program 
called COPY FILE. That program, once written, could be 

loaded and run. 

That's the handiest way for users who have a disk sy.stem. 
For users without a disk, there s a trickier method which 
allows a program to "collapse" upon itself in memory, 
generating a new program which may then be saved to disk 

or tape. 

[^ Th^TrqnsoUor 


Volume 5, Istvo 01 I 

Demonstration Program 

Here's a simple example of a ""collapsing" program. It's 
written specifically for the Commodore 64 - don't try it on a 

It collapses into a three-line Basic program. Big deal; it 
doesn't do anything amazing for Basic. But it's a Basic 
program you'd have trouble typing in the regular way. 

1 data 27,8,100,0,83,36,1 78,34,144,5 -25 

2 data 28,159,156,30,31, 158,1 29,1 49, 150,1 51 -42 

3 data 152,153,154,155,34,0,141,8.110,0,-29 

4 data 153,32,200,40,83,36,44,187,40,49,-53 

5 data 41,172,49,54,170.49,41,59,34,147,-26 

6 data 17,1 7,32,32,32,32,84,72,73,83,-37 

7 data 32,73,83,32,32, 141 ,32,32,65,32,-44 

8 data 68,69,77,79,78.83,84,82,65,84,-36 

9 data 73,79,78,32,141,32,32,32,32,32,-37 

10 data 79,70,32,65,32,76,73,78,69,32,-23 

11 data 141 ,32,32,32.32,84,72,65,84,32,-1 8 

12 data 89,79,85,32,32,67,79,85,76,68,-15 

13 data 78.39,84,32,141,32.32,32,32,32,-44 

14 data 32,32,84,89,80,69,32,73,78,0,-2 

15 data 151,8,120,0,137,32,49,49,48,0,-18 

16 data 0,0,-49 
200 data 1 7 
300 m = 63 

310 read x:l = peek(m):h = l = 200:ifh then l = x 

320 v= r<>l:s = (t<>63 and r>0 and v) 

330 if V then t = 1: if not s then r = r + 1 :s = rOI 

340t-(f3 + x)and63 

350 if s then print "error line ";r:e = -1 

360r = l:ifnothgoto310 

370 if e then stop 

380 print "here we go" :x = -1 : restore : b = 2049 

;fora=1 to 9999 
390 if x> = then poke b,x:b = b + 1 
400 read x:l = peek(m};if l<255lhen next a 
410 poke45,16:poke46,16:clr 

Type it in. Try creating deliberate mistakes in the data lines; 
it would be most unusual for it not to be caught by the 
checking program. When everything is OK, the program 
will collapse into a three-line Basic program which can be 
saved to tape or disk in the usual way. 

Don't worry too much about the strange screen you get 
when you say LIST. You can't enter this program in the 
usual way because the second line contains special charac- 
ters that cannot be entered or listed. 

Data line 16 is sufficiently short that you can work through 
the checksum by hand. Start with the line number, 16. 
Multiply by three and add zero giving 48. Multiply by three 
again and add zero: this gives 144 which when ANDed with 

63 gives 16 (divide by 64 and take the remainder). One last 
time: 1 6 times 3 is 48 plus -49 gives -1, which works out as 
63 when ANDed with 16. And that's the correct checksum. 

A Generator Generator 

! worked out the data lines for the COPY program semi-ma- 
nually, presenting the data on the screen and entering it by 
moving the cursor over and pressing RETURN. That's tedi- 
ous for medium to large programs, 

Elizabeth Deal wrote a data line generator for this program 
before I did. It needs a disk; information is drawn from a 
program (called "INPROG" here) and a new program 
(called "OIJTPROG" here) is produced which contains the 
DATA statements. The following listing is adapted from the 
original Deal program, 

2030z$-chr${0):d$ = chr$(131)+ ' ^':d = ^0:\\^^ 
2050 open 1 ,8,3, " O:inprog,p,r " 
2060 open 2,8,4. " O:outprog,p,w " 
2070 print#2,chr$(1);chr$(4): 
2080 for 1 = 1 to 1e4:gosub 21 70 
2090 for k = 1 to d 

2100 get#1j$:v = asc(i$ + z$):ef = st<>0 
2110 print#2,mid$(str$(v),2);\"; 
2120 t = (3't + v)and63: if not ef then next k 
2130 print#2,not((3't)and63);z$; 
2140 11 = 11 + 1 
2150 jf not ef then next I 

2160 gosub 2170: print#2, tiz$;z$;2$; : close 2 
: close 1 : end 

2170t-ll:print#2, "00" ichr$(ll);z$;d$;:return 

If information is being prepared for a ""collapse" type pro- 
gram, an extra line should be added; 


Variable D specifies how many items will appear on each 
DATA line, in this case ten. 

After the program containing the DATA statements has been 
produced, the last line number must be changed to 200 and 
the generator program itself added. 


Is it worth it? Yes, if a program must be absolutely correct. 
Yes, if a program is difficult to enter because it contains 
special characters or needs a machine language monitor. 

On the other hand, a ^Yegular^' Basic program is much easier 
- and less work - to enter as a listing. What's more, the 
reader has a chance to see how it all works. 
When you need it, it's handy. 

The Transactor 


Volume 5, Issue OT 


th*V*chlN>wi Journal f^r Commader* Ccmputtrf 

Volume 5 Editorial Schedule 


per page for articles 



Copy Due Printed Release Date 

1 Graphics and Sound 

Feb 1 Mar 19 Apnl 1 

2 The Transition to Machine Code Apr 1 May 21 June 1 

3 Software Protection & Piracy 

Jun 1 Jul 23 August 1 

4 Business and Education 

Aug! Sep 17 October 1 

5 Hardware and Peripherals 

Oct 1 Nov 19 December 1 

We're also looking for 


drawn cartoons! 

Advertisers and Authors should have material submitted no 

later than the *Copy Due' date to be Included 

with the respective issue- 

Send all material to: 

The Editor 

The Transactor 

500 Steeles Avenue 

Milton, Ontario 


Driving by Millon? 

Come Visit Us! 

Take Highway 401 to Highway 25 

Go South to Steeles Avenue 

(first lights past railway bridge) 

Turn left (East) to first lights 

100 Yards past there on your right 

Is Us! 



3D JK T^ Tm 4 V W.#ff.Lift ChjFt « 64 Rinurrti^r « Brt*WI ** • i^wk »*^ 

Mrf*t,ch 1*M\ M * JoiTW J« Lintf#r * tibri'^i'^ |JI • L#rti«r • Michinp 


S^o4h B/gLvr 

Tr«ti H 

■^(irid 7imi 


Arn/it^ F'*g * BitiV T-M* 4 ftir G^p£^^ * L-TV Pll*"i • ElHLltflML * fl.flM * 

Ft>vri uVi'k* G#.B*f Cfr^^iw • Lif* fifi^i*ncT • M*n»i 0>j«ifr * Hriflc<nri# Ql 
F^#r • Rb^ d ^fCly * Sufxnrto^ 04 4 T^mo Cht> 


GAMES — Hicirplhrwin 1 4 * Cn*ch*T 4 C»*w5* • t>*m kictan * Mi-Q • 

M^i ftfcjffl* In * Milk B*^-r.i PR ■ an#™T **- *S • P>B * MVrip Tr*^ 

UTILITIES — bM 4 h> Pr^ni^ 4 awHJ Y wW 4 C4kim«^ 4 QtufnUilvr 4 

WtZA Til 4 Fmd Pn*«* H^iljofl Cue 4 lr.l«TTMnt4 J/2U Nkri« R/T * Mwii- • 

M«i^4Y tMcti^tfli 4 PCftN Prmtw 4 Pcm^fl*^ 4 Prapwtv Evil 4 TiriHr 

4 TYEnnfl Arif 4 T>**ftfl T#±1 4 Vmw &■* 4 W#fflht WAlcrwr 
E0UCATWP*AL- CfwmKil friH 4 Ct^l LA* T#fmi 4 CrVpiflftf*m| 4 ESP T*iH 

^rmch S»rtlTflfl* 4 f'^rxJ* V»« 4 C*Cigm>Hv 4 GitiHi * M& L#v«*1 4 
ypim^ irr * Utw Tuimr 4 Mien C^n* 4 M#m Qirl 




Writlan by uura, for utvfi 

* GAMES_* UT^ITnEJJt_EpUCATipN«.jl[_ 

coii^ctiop #1. - colLectri4?n «2 - coFtectian #3 

CQllecMorh #4 - collertion #5 - collsc^on #8 

70+ p^[:^Q^flrrts p«r coHeclicn - Tftpfl/Diili - $10.00 



GAUCS-^ ft^lMhif]- 

4 Mvitv PAu 

C0PrihH^Cri>AE«4 CCH-LfCTION «4 

B fiomi^ditf 4 Ci?F'»4 ^4fl*r*i 4 Kn- M?-^ 4 L4i1*r Squ^v 

□m Cli«k*r 4 D#t*fl * StudM Init 4 5(Ud4i Prag 4 

yTlLlTIES-r Ai»ftrr*rt* 4 8*nn#r 4 hg Litt«n 4 C4 C«i 4 Cjih. fi[w 4 

CMf A/W 4 Cb#cuifv * Fwl 5[7n 4 CmA^I 4 GrMhi 4 l-^Cfi^V P^* 4 

Pt.iI Wnwmt^ 4 Pnmv h+tfenf 4 SttrviF^^v 4 Sifn^rf^Si'Ml 4 ^Ulh^ini^ 

£EXri>TI0*4AL — D«M4v * F4^i*ani 4 GrHwrm^ 4 lii*4*r UaIFi 4 Lo-^h DnUhhi 

4 Uttc^mci 4 ftjwir* b HWE* 4 SirijgM Un» 4 "ftV-Slf Ni^nUm 4 Wanf P^Un 


GAMES — Alipn CMrturi 4 A.jtn RJl^v * CiCiminpw * 6pi|sIo™ 

Loil G4MrJ flrJv 4 Nirh* 4 OwSn 4 Hjpffrm^fi • 2or># )* 

UTIi-tTttS — Atcovnnng T*ai 4 Afinmty 4 A^a'*9« Growth 

BuiidiriB Co^Lf 4 ^uy &tli 4 Chj-^q Diik Nim* 

C^Crtft Word 4 Dlt4 &««riih 4 &I«C U» * FiTivnnt 4 Growlh 

\ff Cam FIovh 4 L»4^ Cak * ^«^ £ii«id n^^ii * R«ni or Buv 

EDUU1X3HAL - 4 cpt te 4 Artw Fkh 4 Bifl Miff^ • El»fT*fTi Owl 

Ehizj * tuPC*4 4 Hpnfl M*fl1 4 Lir.*»r Prr>o 4 LcH?p4 

MvftiluEaE 4 1^4lh Facci 4 Nomtvf Miii:hh 4 WdHd Ouit 



aPmf W VK:-» 4 1 o1 ■ F^infl 4 AJ^wifl dim* 4 AJiin J 4 AJprtu K<v 4 

UpnilM4iiB^4 6q Lfn^r Juid 4 hg L«n^t « ftrMkul iPl 1 4 fh^tkoui fPl Z 4 
frr^i^i ] 4 fiuwr«H hmfi 4 ^hifth ViuCh 4 Cli>tk 4 CaJ«# Btt^t 4 CpnK 
mjnd^ 4 0«t 44 W**#. 4 D«i*<irt MMw 4 Dihicli*^ 4 Pimo 1 4 l>«™3 2 4 

Q*if4 ^ # C*n» * 4 [>*rno 6 4 1>a^o ft 4 O*"^ T 4 r>ofl Pk* inrl 4 

Dog RA44 Ph^ 4 &rfij«in-G*m# 4 punjiarvim 4 E^h-A Sktcih 4 Mip- 
m fcrthd*v * Kt^^pic 4 MiMHi Bid44*^ * h+D-jiihDid m-^m 4 JiA*i^^ T**1 4 
Hf^Hk^DfH 4 <JI*» C-Hyn^c 4 Kinpdom-^^vit 4 Kbngdom-ir-ti 4 L^*^ Lirntar 4 
LuA4P UiHlv J 4 liUlh J 4 *^H* V«^lu™ 4 M*wy 7C Mai 4 Monr^ Chirt&V 4 

MiMtft 4 0(4 Cnf^wti 4 tMk Mifl 4 fttofi* ChrtCECMt 4 Pif Lhifl jSE^ 4 
FW^ (^4t4 4 PTfmoUicn 4 H-rtf Cnuinff 4 find Rsft ■ HaImh ^^^ah 4 

AiK:k«f Zww*^*^ 4 P«ut Cmwnjftd Z 4 f\Aiw hui S<k^ P F^fl*^ '-^ • 

Scrwi Durv 4 S-I^f^ t^^)M 4 SJaC MAchir.^ 4 ^fuk» 4 &fViwfUi h^n 4 

S^ui^tgta 4 SUr Wbt 4 T*fik b»i UFQ 4 T^pi Firrftt^V>C 4 T|^ Cnt«flMi«r 4 

Jm T-n liW 4 t^ T#T> U»Mh 4 W«fd brm hw4 4 WO'd Scm. Pn^] 


64 collection #1-64 coUaN^tion «2 -64 collKtidn #3 

64 CDtlaction #4-64 collfictkpr^ #6 

2S+ programs per coli«tion - Tape/ Disk - 510.00 


5 Utilitv- Topeft/D(*ks - S10 00 aach 

11 Gama - Tapts/Diika- SI 00 aach 

6 Eaucat(on4l - Tjpa-s/DiiXa - 1^0 00 Mctt 

X d^r ^^^ ^^n ■ ^^— '" "^ ^^" ^^ ^^" ^^^ ^^^ ^^~ ^^~ ^^~ 

DUVSETT"! iUs«t Switch 

Works on Vic 20 or Commodora 64 - iSOO 

All pncai includ* Hhlppkig and handbng^ 


For A Free Catalog V/t'te: 

'PiMbUe E>oiiialii"", Ine, 

^2& S Rangelin« Ha.. 
OBpt- T 4s 

W. Milltwi. OH 45383 

lOOO a.m. - SiOO a-f- EST- Mem thru Fn. 
(5l3|B3B'6e3S □-r(513i 339-l7?S 


Hr * I Plt9^>»d TiKtnWt^ ^ C( h"i" ■-■ 

V1C-» COUJCtiOH #3 

J3 Mlttlwi 4 AccQunli 4 Amll#*Y • ***« Lo»a»^ • 6^' 0"™* • BMMpKk 4 

Burh r,i*i 4 C*fcul*^ 4 CiFTnl 4 CmJt 4 Ch*i:Ui«A 4 CTi»tt*-* * tirk»khrtci 4 

CoJouP Whiv'4 CiHf 4tLin Lvtlt' 4 D*ifi ^fipn 4 Dili 5vr<h4 Cm> SUhC 

4 DiH«nhbl*r 4 fhAgciTi 4 Dup« 4 F «fi kiw«mafY 4 Fntiiina F^^CW 

4 Gt>w* ^ Nuntvr 4 Hf^du: 4 htiHto^tPi 4 t F^tl ^ini 4 i rtttiBUiTfe*rm 4 

Invm Cit 4 Invirtro 4 If^pvofl 4 JbfnbH 4 <ir^#iK An 4 LigM Sh»fr* 4 

U»n CilC^I*fOf 4 Mid un 4 M*J Li»i (nirr 4 M*H»rfiMiKl 4 Urth. DnII 4 

hiAlh ChJiz 4 Muh TuE^ 4 Mmiij Oftv»* 4 Mflrti^ 4 McumUAd^ 4 Mm^ 4 

HoihH-ifl Cmi Go W 4 Org^ K»vtw*d 4 Cnf*iW* 4 *'A£Jriin 4 Pitwrmir^ F^ 4 

PtT^Mni 4 PlVId 4 Pir^btll 4 Prnil Irif [>r|>[^|rT^ 4 P'E^^tTiAUl Chdr 4 P#t4 4 

HMfeUnibt' 1 ^ 4 Swnit 4 5- C^jk* 4 £4Xjr4l D^nc 4 ^{44 4 S^pvf Vren^^ft 4 

Ti(H QXim*! 4 Th# ht^jpfHt Sfiow 4 Trifle $>f)nil 4 Unit Co^i-tn 4 UnicnmUT 

4 VKtHHkyPti^ 4 ^*Jl Dfitrnv 4 W^ivh 4 iH^Gnt F'T4K«tK' 

vk:-» coujction tl 

3T1 H [Jmto * *«fT C)uc«v l"il 4 Actv Ouciv Profl * AnJAtfll Boot 

4 Air Irtdi^iifir 4 AJphi K»K***™-Trw4 B^iti«t# 4 V» PTim»f4 Brii^^ T»ipw 

4 Co*m Fill* 4 CcJw 5qu»iH * Co*" Tnch 4 ZWft Trttk S 4 Comtut 4 
Ci>nrKt»n»4 CwmdCTWi 4 CW KtTtyj*rt4 Di^i *•! 0*i« 4 l>^ifcM4 C**c 4 
D*L,j*r, Mih*^ 4 l>?4 P*» inir 4 Ddfl Fl^» Prog 4 Dc^ri^l »K+ 4 l>pvi»- 
tqi^rfl 4 Elk 4 Eyi F\il»*r 4 F«nlinivl«^d 4 Fliih h Spill 4 FlH^ CtW 4 
fiH|i Pn>mi*i 4 fijghl 4 Fl^tf 4 Him Fannu-^ 4 M.jitt#f 4 J^n^l^ B«Jli 4 
LJb*l Hilur 4 L»mQ^*i» Sl»"d 4 i* PlU FiHi* 4 Urt* 4 Mirtpi Irwl 4 
Mir^tt P'og 4 ^rih O.ll 4 Mazi 4 ht«rim^ 4 M*fTWY 4 PtKK^* l>*LHrv 4 

Ph>fr »v ^*umb« 4 IV^*- 4 Pr.n1 Uiir^ 4 Ov^l Anttnnj 4 FlAM T*tr 4 

Ahdi^ Frtq fim»fcJ 4 (^r^T^ T^rwi^ng 4 Strain FiV* ■ i»tml • S*qu#ncp4 5l*c 

4 Snowflih* M*h 4 Sh: SI H*v * fip*lling CtwBin * 5oC*i Hog^ 4 Sj- 

P4f iHmD 4 5^ni?AV*r*-Antonvm 4 Tn^irujA 4 VkIw 7iC-o 4 VIC H*-i 4 

Wofd S^rm iTTf I * iViFd 5^^^ Pn^ 4 Vkgi 4 YihUM 

VtW CftAlCTBM t* 

Ifl Fuhdrt/. Otmo 4 ^rtiwr-unl 4 Add Cflk^nn 4 Md ^»t 4 b Griph 4 

B*4«^Vll Ak 4 Chir [>in ^M 4 Thi^j*^ lnAl 4 Ch+ffl*' ftog 4 Ch*fliftil Ouil 4 
Chid4C.^ci i:hi™#a g#iL« 4 13pi^rr,T,iHi 4 0.*t frpclof 4 Dt^k UB 4 E- 

hu 4 EteI'Vr.tcft 1 4 Er>*rv^ fi*rtr 4 F-«ii^i 4 F^^i^f Sf^cifti:* 4 F,^- 

A*i4 Cik * Gi4U fpy 4 Gu*t*-^i 4 Min^ni..^ 4 HHFl«iCI«k4 He I Finirmrt 4 

kwiUmmt f y 4 lrwiHrn»rti fit« 4 J^SO H«v/Tini 4 im^i CoMfdI 

4 L4U & LJBC. 4 Pht*r(K.#* 4 MjIPi Flwii 4 Mrtra So^-p^ 4 Mi*™^ Mcrnlof 4 

M^ili M»lh4Mcon LjMdp'4 Mvthc.^Y*N«^ a V** D^ 4 hFV fr I*t-J4 

f-^.M»i 4 F*r«rfi T«l 4 P-^tf 4 f^tKhwl 4 <Vid-Eq-&ahH 4 fliilrMd 4 

ROUEi ftK 4 RoijrxJ*f»g 4 flS?3? 4 R-^H N Hf n 4 V^j-^^C*' 4 StnF. PkH £«ni 

4 5.i^4J*# iirall 4 SofliH 4 Sp*KJ Rppfl.r^ 4 Spnii-^u 4 Su^# CifHliU 4 S^ri 0« 

4 THE C^mhiE * T*fiy fr L^Hn I 4 T^f^ t Lw*^ P * frwihJwwWi^ • Pri- 

VfHih SiJtv*- 4 Tminri 4 rv T*i1 Pi!t*m* 4 VlC ChwiktWi 4 ^w^hwr^y^ * 

WM<n^ 4 Word ScrirthbtH 


AAinu1lfL4 ArTO¥n ^fr Bc>«*] 4 A^Ch]«I«* l»n»i4 Bip Lvfltn 2 4 BtoftrplfHPi 4 

C-l»nd^4C*0i*H lnlra4CifHcMi Pi 4 Cm«iM PJ 4 Ciprtjii P3 * C^Jriit W 

4 CiiMtj^ ajiJ 4 C*fcK Flu* 4 Cit*k»g hU^^ 4 t¥^ Cwv*#rt I 

4 Cfr4 Cf**i*r» P 4 Cii'>g* Diih Nir^ * Cl****" Ou'^ * Cc^«^t™l^*^ 4 

O^^x^^iH 4 Ph:i RdIIti 4 \^^ Q.m*^ 4 Eir*^ 4 £ r>g^Mh."M*Ci** * f*ll«Jt 4 

F4'k1 T.i*«fll# 4 FiMif in ■ R™ 4 Gj» Miligi 4 HiV 4 Wmt^ C*rt*fc l^ 4 

MAugcfi 4 HSfllFip H«Hi 4 riftw hbnv fl™»» 4 Kt>tiM|] 4 t\\\m Hofrou * 

LJv eyjwuincv 4 Ltrifl Qmmh 4 Lh»^ 4 Mittwff * Mm^hwi J 4 W»i- 
ncVEritf^.ph 4 PLi,ii#* 4 W.U.ftfl Numt*r 4 t**^ Ovh 4 thrto-i* 4 CVr*-- TWi^* 
4 P»r<i a* 5p«5h 4 *>inbill 4 p1f^i4 Pc^ AooU 4 '^^h^-l 4 rnmi * F.ftdw 4 
Pfifitm^ T#*1 4 «!>«> n*llY 4 RatKii 4 ^Lr.+n Oump • 5ti*« Trrfw 4 SfiM>*t 4 
5^r>4Ui 4 S^Hik Th::k*r 4 ShKJii^ G-»dw 4 ^ Ji HuM 4 Tjr^b 4 Ttrnp Com^n 4 
Tnnrrt DflU 4 LrtilrW UhA* * ■v*rl-Lil M«v 4 ^K LommunKakK 4 Lit LiufouP 

4 W^M Zv 

3l>Mvt * A Of An Quil * AlHm Oukt * Ahp^ Bcrf 

jMnqrlhr^ • &*nnflF 4 &iB Sci • Bk> F*nrn»* • fifM^OUt gj 

f^^iy^q-Mgr 4 eumbl«tiA« 4 Q^ErM^f^ 4 CftKAd4f 

CBh^ Pfltk • Cfrjtf 5^v^ 4 Colour PinlMll 4 CompiJ^fff Fii 

CtjvflFB^^ l^redict 4 Crap* • C'vioflfim 4 DddpipKt 

Dantirv t E»t«r UaC«l 4 Elvctnc Ccwl * FlC< T|L 

^Mi Sort 4 f^t Cilt 4 Finng TjhK 4 Fr*q, CoOfd- 

GftOfl Sfifll Oaffw • Guiniipn 4 H>fl« 4 Jph Jar 

L ^d D«Ffln 4 Lrtrfiftch 4 L#tt»r Rpcd 4 MmUcwi Citn- FNd 

Mitch Th» tJumtrtf 4 M#1h pica 4 Math Fki Drrfl 

Miih T»H 4 Mjih Tima 4 M*ia FilaKtf 4 H*nt ChnaimiB 

MiMicnjrf* 4 MwiiC * Huhip»v T*b^« * NH^W^H fpfU 

NiEHtti 4 F>Ce Pnntpr 4 Pi NaTwi^ l?B»ig 4 OJAn»< 

Quii 4 R-&P • H«ou4UJ H«kw * F^avwi^ \^V- 

Pffvvng* prog 4 F^ruJ. Gr^hiCi 4 nL>ll.n9 S^ifkft 4 Rgin Aid 

^hOfVirig LiH 4 5irfiOn 4 SlifJfl Vuhi* 4 SnoopY Hirp* 
£pfl1l-no A»d # Sujpwaich 4 S.-nrm/Sunaat 4 S^mT Anan 

TaoPki 3 4 ri>3 Htfl^^Tog Low 4 fypmg T«f * V*ciori 

Vahwia Cirti • MC Ortwt * WC Symprtwnv • Wumpu* Init 

Wumpu* Pr^tp. • Z*«* Fomwla 













3481SS/DO $33.00 per 10 
3491 DS/ DO $45.00p8r10 
3481-2 SS/DO 2 Pack Mailer 
$8.00 plu8 75c postage 


All olber 9*MS and format available and volume discount. 

Flip 'N' FliB, hold 50, 5 V*" diskettes 

Flip Pac, holds 105%" diskettes 

Disk Banks, hold 10 5% " diskettes 

Plastic Library Cases, choice of colors; 

EPSON RX80 Printer 

EPSON FX80 Printer 


MICROWARE Interfaces 

TTX Daisy Wheel Printer 

AMDEK Monitors 

MX 80 Ribbons 

To order Send monsy order, certified cheque, personal cheques must dear 
our banh, VISA or MASTERCARD. (Include card n and expiry date & 
aJgriatura) Add 5% lor shipping and har>dtlrigH Minimum $3.00 per order. 

Quebec residents add 9% P.S.T. 



P.O, Box 522, Boucherville, Quebec, J4B 6Y2 
(514)655-9232 Dealer Enquiries Invited 

$38.50 each 

$ 7.00 each 

7.00 each 

S4.50 each 











Lode RunnEr D C 

Spare Change □ 


Chopiifter C D 

Seat ox D C 

(Cartridge version extra) 

Bank Street Writer D 




C-64, VIC, Atari 


Planetfajl D 

SYmPZl (ATARf & C 64, 


Fort Apocafypse D T 

Blue Max D T 


"Playground Software'M.m. 
(Uses Light Pen) C-64& Atari 

Animal Crackers D S3E 

Computer Crayons D $3G 

Alphabet Arcade $36 

Bedtime Stories D $36 

"C.P.A. Completo Personal 
Account" t.m. C-64, VIC, TflS, 



for most) 
Snake Byte 

Bandits D 
Type Attac 
Squisti em C APPLE 


Docomate template C-G4 
Code pro-64 — Tutorial tor 
basic plus sprite & 
music gen. 







Toddler Tutor 

Primary Math Tutor 

Math Tutor 

English Invaders Games 

Gotcha Math Games 

Dealer inquiries for: 

Programmer's Institute 


Victory Software 

Comm' Data 



Complete Set (1. 2 & 3) DT 
Finance #1 DT 

Finance #2 DT 
Finance #3 T 
Finance i^4 T 



Art on your screen 

20/64 Dual Packs 
Cassettes (T) or Disks (0) 


M eta morph osl s T $30 

Creators Revenge T D $3Q 

Labyrinth of Creator TD $30 

Galactic Conquest TD $3Q 

Kongo Kong T D $30 

Chomper Man T D $30 

AnnlhllatorTD $30 

Adventure Pack I 

(3Prog)TD $30 

Adventure Pack \i 

Prog) T D $30 

Bounty Hunter (Adv) T D $36 

G rave Ro b b e rs-G raph ic 

(Adv) T D $24 

(Disk version: £4. extra) 


Super Base 64 Data Management 

System D $117 

CalG Result (Easy) S106 

Calc Result (Advanced) £202 

(C) Cartridge (T) Tape (D) Diskette 

Piease call tor info on your computer model, avarlabifiiy and specific price. 
Send certified cheque, money order or call and use your visa or Master- 
card. Personal cheques require two or three weeks to clear. All prices 
subject to change without notice. Please include $2.00 per order for 
postage and handling, Quebec residents only add RsT. 

Call Toll Free 1 -(800)361 -0847 

except Western Canada, Nfld. and 
Montreal area (514) call collect 

CALL COLLECT (514) 325-6203 

between 9am and 5 p.m. Eastern lime 
or send order to: 6864 JARPY EAST, MONTREAL, QUE. HIP 3C1 


«mmodore 64 








with a difference! 

Unexcelled communications power and 
compatibility, especially for professionals and 
serious computer users. Look us o\jer. SuperTerm 
isn't just "another" terminal program. Like our 
famous TermJnal-40, it's the one others w»l be 
Judged by. 

• EMULATION— Most popular terminal protocols: 
cursor addressing, clear, home. etc. 

• EDfTING— Full-screen editing of Receive Buffer 

ACK-NAK. CompuServe, etc. 

■ FIEXIBILITY- Select baud, duplex, parity, stopbits, 
etc. Even work off-line, then upload to system! 

• DISPLAY MODES~-40 column; 80/132 with 


■ FUNCrraW KEYS— 8 standard, 52 user-defined 

- BUFFERS— Receive, Transmit, Program, and Screen 

• PRIfSJTING-Continuous printing with Smart ASCM 
jnterface and paralfef printer; buffered printing 


• DISK SUPPORT— Directory, Copy, Rename, Scratch 

Options are selected by menus and EXEC file Software 
on disk with special cartridge module Compatible with 
CBM and HES Automodems: select ORIG/ANS mode, 
manual or autodial. 

Write for the full story on SuperTerm; or If you 
already want that difference, order todayl 

Requires Commodore 64 or ViC-20, djsk drive or Daiasette, and 
compatible modem. VIC versron requires 16K memory expanSfOn. Please 
specify VIC or 64 when ordering. 

^.....^TiM :■ 

Smart ASCII Plus 



The only Interface which supports streaming -sending 
characters Sfmultaneously to the screen and printer - with 

Also great tor use wjth your own programs or most 
applicatbn programs, i.e.. word processors Print modes: 
CBM Graphics jw/manydot-addr printers], TRANSLATE 

Complete with printer caDle and manjaL On disk or cassette. 

VIC 20 and Commodore 64 are trademarks ot Commodore Electronics. Ltd. 




Send for a free brochure^ 

MAIL ORD^R: Add S1.50 shlppkis arxl 
hBndtlr>g [S3 50 for CO.DJ; VlSAflrfaalercard 
accepted [G*xi« atw] exp. date}. MO lesidentft 
add Sj625Vo sales las. foreign orders payable 
U5J, LI,S. Bank ONLY, add S5 ahp^ndlg. 

311 WEST 72nd ST. • KANSAS CITY * MO ' 64114 

















75^ [Ht CJUttN^WAY iiAST. UNiT 6. 






Commodore 64 and VIC-20 

stock HELPER is a tool to maintain a history of stock 
prices and market mdicators on diskette, to display 
charts, and to calculate moving averages. Stock 
HELPER was designed and written by a "weekend 
investor" for other weekend investors. 

Stock HELPER is available on diskette for: 

Commodore 64 $30.00 ($37.00 Canadian) 

VIC-20 (16K) $27.00 ($33.25 Canadian) 

p)us $1 .25 shipping ($1 ,55 Canadian) 

The VIC-20 version only charts 26 bi-weekly periods rather Ihan 
52 weekly periods 

(M)agreeable software, inc. 

5925 Magnolia Lane • Plymouth, MN 55442 

(612) 559-1108 

(M>agfe#able and HELPER are Trademarks of IMjagreeable soltware, inc 
Commodore 64 and VIC-20 are fradwnarks or Commodore Eteclromcs Ltd 

Intelligent Software 
for ttie Commodore computers 

Colatog 5/1/83 

My line of programs fsuch os It IsJ consists of the following products. 
Air are written for Commodore computors; any of my programs will 
load and run wIthoL;* modlfioatlon ^n th© entire line llncludlna older 

1 Wofd ProcvMor; S26. If includes the foUowing features. VERY fast 
HI© routines. Jncludjng a disk tile cofalog; automotlc form handling 
on tractor- or frfction-foed printers; fudy imbedded margin, Justifica- 
tion, spacing- formatting, and paging controls; block commands 
and errctf-tropping In editing mode; and a spool routine (formotled 
output to disk fof later mass printing). I believe W/P is ttie most 
thoroughly tested, user-oriented word processor availobie at this time 
at anywhere near the price, for any maohlne, Requires a minimum 
of 10k of memory (Sk expansion on VIC), and o pointer. 

2. Copycofc; 320 (SIS If ordered with another program). 
Copycalc is a simplilted verskxi of tt^ ' eleotronk; spreadst>eets" that 
are becoming extremeJy popubr for use on personal computers, tt 
allows ttie user to set up a visible grid of numbers on thie screen, and 
use the screen-editor to make chonges In the grid, with the totals 
reflecting the changes. I^equires 6k RAM (3k expansion on VIC); 
smaller version availoble for unexpended VIC. 

3. Bawbal Monoow; *30. This progrom rnainfalns complete bat- 
ting statistics for a baseball or softbal* league of up to 260 ployers. 
It generotes reports on a player, feom. or the entire league (in- 
cluding standings). It requires o mtnlmum 10k erf IWwl; a printer Is sug- 
gested but not required. 

4- Inventory; $30. A general-purpose perpetual Inventoiy control 
program ft produces a variety ot reports, including order forms; 
multipJe vendors are supported. Requires 10k of RAM; a pointer Is 

All programs: support cassette and disk files and the C8M printers 
(easily rrxxJlffoble to other printers], come on cassette, ond lr>clude 
documentatk^n. Prices include shipping; Calif, residents odd 6*. All 
programs ore copyrighted by tt^ outhor; those rights will be enforc- 
ed. Programs availoble from; 

WillJam Bobbins, Box 3745, Son Rafael, CA 94912 

Disk Software for the Commodore 64™ 



A computenzed version of the old five letter word 
game. Simply pick a secret five letter word (one oi the 
almost 5000 words contained on the disk) and then 
play against the Jot-A-Word Genie or simply play a 
solitaire version. Start by typing in a live letter word. 
The Genie responds by telling you how many letters 
your guess and the secret work have in common. Don't 
try to cheat, because the Genie is too smart and it will 
not accept non-words or continue a game that you have 
given it wrong scores. This is a simple but stimulating 
game for ages 9 to senior citizen. A real challenge to 
your intellect, reasoning powers, logic and deduction 
skills. It's simply hard to beat; as a fun and educational 
experience! Graphics and music add to the enjoyment- 

ONLY $29^^ 


13426 RT. 23 
BUTLER, NJ. 07405 

Dealers & Distributors 
Inquiries Invited 



Prices are in US dollars 

is hard to beat!' 



If you own a disk drive then you'll need "The 
Clone Machine". Take control of your 1541 


L} Compl#t* and thorough uwn manual 
20 Copy wiih one or ^wo driv 

3.} InTMtigate and back-up many "PROTECTED" disks 

4,) Copy all fila typM including relotlTa typM 

5.) Edit and Ti»w track/block in H*x or ASCII 

8.} Display lull contents of directory and print ^ 

7.) Change program names, add delete liles with single keystroke j^ 

8,) Easy disk initialisation 
9.) Supports up to four drives 
"UNGUAHD Now allows you to read write and Terliy bad sectors and errors on 
youi disk making it easy to back-up most protected soltwara* 

Dealers & Distributors 

Inquiries Invited ^^^^ miCrQ 1342 B Rt- 23 

CALL (201 838-9027 umri Butier,Nj,07405 

"Should've made a back-up with the 
Clone Machine/' 


*C0V1000llK (^-1 


You are the last human being on earth. 
You must climb up and down the ladder, 
avoid aliens and get treasure. Machine 
language. $14.95 ta£e $19.95 disk 


This is a 100^ machine language hockey 
game for two players. Great color, 
graphics and realism. Requires two 
joysticks. $1^.95 tape $19.95 disk 


A fast action arcaie sty]e shooting game. 
Kill the segments of caterpiller before 
they kill you. With machine language, for 
amazing speed. No memory expansion requir- 
ed. $1U.95 ta^e - $19.95 disk 

Another fast action arcade style game. 
You're a frog trying to get home. You must 
cross the highway and the river to get five 
frogs home. With machine language, no 
expansion required, $1^.95 tape 

$19.95 disk 


Get your space craft through the asteroid 

field and out of the galaxy. Machine 

language for fast action. No Kemory 

expansion required, $U. 95 ta£e ,,,,_,_,. c ^MJ W' II K H (* A T A I () G 

$19.95 disk WUITh h OK h K r. r. i, >\ i *\ i. v^ " . , . . 


. v:C 20 *:.L C0^■^CDO!e: 6U are HEGISTSEED THALEI-ARKS of COWODOBE business KACHI^ES. 




Adds 24K and 3 Expansion Slots With Switcties and Fuse $109.95 

INTRODUCTORY PRICE ^^^^'^^^^^'^ ^° ^^'^ ^y Simply Adding Memory Chips and Switches) 
$109-95 ^-aesToT-P^ „,code^"^ .„^,,ested 


c TO TOP^ HP ^'^'^ 

Evod^^5?rte Pr°^ 


'AMS24K Memory (29Kwitn VIC" 5K). 

•Upgrade Boord to 35K by adding IC's and switches. 

'Memory swifctiaDle in 9K sections. (No need to remove rnemoty board to 
mn vour ottier programs), 

'3 exponsion slots witti switcties (tor gome or extra utility cartridges). 

' Reset button allows restarting computer witfsoul turning power oft. 

• 5 omp fuse protected 

" Switch relocates expansion cartridges m memory so ttiat it con be saved on 
tape as a backup fw your valuable pfograms (The unexpended VIC wHI not 
allow cortTidges to be soved on tape) 

'Wnte protect switches allow programs stored in RAM at ROM location or 
entire Memory to be proiected against accidental wnte, 

'Swjtch allows memory to be moved between RAM and ROM location. 

(Useful for developing your own games and sovinfl on tape). 

"Gold plated cord edge connector. 

'No other memory exponsion needed, 

'Easilv plugs into yojr VIC. no moditicDtlons necessory 
Saves wear on your VIC 20 since board never needs to be 

removed or power turned oft and on to run ottier topes 

or cartridges 

Opiionoi 35K memory (iOK with VIC 5K) 

Of^' ins 

^""" CO^^-'"= 










Pictured Above - 

Action Board with all options 

COD Orders: 816-444-4651 

24Kmemary, 3 expansion slots, switches assembled and tested $109.95 

Same as obove with sockets that oNow you to later odd your own memory chips to 
bnng memory from 24K10 35K 5124.95 

Full 35K memory, 3 expansion slots, 3K expander mode, eprom socket 
(switch seiectoble between BLK 3 & BLK 5) and all switches assembled ond Jested 
(eprom not included) $149.95 

Bare 35K board with complete instmcfion and parts fist : S39.95 

Prices are m US dollars. 

+ + 



VIC 20' is a registered ttodemark of Commodore. 

Add $5 for shipping and handling 

Md. residents add 5^2% sales tax 
Send check or monev order to 


Box 8123-B 

Kansas City, MO 64112 

Pefsonai checks-Allow 3 weeks to clear. 

The Banner Machine'^' 

For the Commodore 64 (with 5 
fonts) or the vjC-50 with '2AK mem- 
ory, • Use on any Epson MX with 
Graftrax or the FX and RX printers. 

■ Menu-driven prosram operates 
Jjke a word processor • Makes 
Signs up to 10" tall by &r\y length 
• Makes Gorders of variable width 
up to ^" • 8 sizes of letters from 
Vr to bW high, • Proportional 
spacing; Automatic centering; Right 
and left justifying $49 95 Tape or 
Orsk (Specify Computer ecjuipment) 

For the Commodore 64: 

Space Raider An amazing arcade 
Simulation Your mission is to 

destroy the enemy shjps SI995 

Super Roller Challenging dice 
game Spnte graphics and sound 
Vahtzee-styte rules of play. Si 4 95 

Formulator A formula scientific 
calculator designed for tasks which 
require repetitive arithmetic com- 
putations You can save formulas 
and numeric expressions S39 95 

Preschool Educational Prosrams 

ABC Fun- 193 Fun, and Ginger the 
I Cat with Addition and Subtraction, 
I Number Hunt, and Letter Hunt All 
I programs hs'JZ bright color, music, 
I and action. Each S14.95 

^^^tommodofc 64 ar>d VIC-20 are registered 

Microbroker Exciting, realistic 
and educational sfock market simu- 
lation based on plausibie hnancial 
events. S34.95 Tape or Disk 

Sprite Editor The easy way lo 
create, copy, alter, and save up to 
994 sprite shapes S24.95 

Cross Reference Generator for 
BASIC programs Displays line 

numbers in which any word of 
BASIC vocabulary appears Allows 
you to change variable name and 
Bf^k for hnes where it appears, and 
more S19 95 

For the VIC-20: 

Caves of Windsor A cave adven- 
ture game. The object is to restore 

wealth and happiness to the small 
village o( Windsor Si 4.95 

Burger & Fries Fast action joystick 
game Eat the burgers and fnes but 
avo>d the shakes for a top score 

Catalog avflifablc Dealer inquiries inviled 

PHONE ORDERS : (703) 491-&503 
HOURS: 10 a.m. to fl p.m. Mon.— Sat. 

Cardinal Software 

^ Di5trit)ijted by 

^■••^^^^B* Virginia Micro Sy^fems 

y^^ 13646 Jcif Davi^ Hwv 

-L-^ Woodbndqe, VA 29T91 

trademarks oi Commodore FlectronicE Hd 

Assembler for the 

Commodore 64 

PAL 64 

• easy to learn 

• easy to use 

• comprehensive 

Personal assembly language 
by Brad Temple ton 

also available for the Commodore 
4,000 - 8.000 - 9,000 series 

$99.95 from your local Commodore dealer 
For your nearest dealer call: 







HE TOb-Q rviE HE pnA[:;TiceD 


Here is your chance to play golf on a championship course without all the 
headaches of getting a tee time, waiting for that slow foursome ahead of you. 
losing balls, getting rained out or spoiling a good handicap. This game may be 
played in the privacy of your home or in a clubhouse lounge for the enjoyment of 
many members, A challenge to even the best players, this game requires a high 
degree of practice, expertise and accuracy to attain a good score. 

PRO GOLF Features : 

• A full range of golf clubs (driveway, fairway wood, 
wedge and irons 2-9) 

• Realistic shot distances depending on club and 

• Theability tohookorslice ashot 

• Up to 4 players in one game 

• Detailed, colourful screen layouts of 18 different 
holes (tee, trees, sandtraps, rough, water, out of 

• Simulated ball reaction to course hazards (e.g. ball 
bounces oft trees) 

• Hole distances, par, yards to green, strokes taken 
on hole, total strokes per round and player totals 

• A full screen enlargement of greens for putting 

• Accurate putting simulation for angle and distance 

• Practice of real golf skills - club selection, type of 
shot (normal, hook, slice), length of swing, special 
shot strategy (e.g. chipping, getting around or over 
trees, water, sandtraps) 


For The Commodore 64 


written by George Adams 

distributed by BMB Compuscience Canada Ltd. 

500 Steeles Avenue, 
Milton, Ontario 

L9T 3P7 

Dealer Inquiries Invited 


Address _ 

Postal/Zip Code 

DMoney Order DVISA DMasterCard OCheque 

Acc# ^ ^ —^ — Expiry 

Please include numbers above name 

Add $2.00 for shipping & handling 
Ontario residents add 7% sales tax. 


MW-3Qa: VIC-SO/64 

Parallel Printer Interface. 



2-ft cable 
36- pin connector 

6-pin DIN 


4 b + I + q_ 

Works with all Centronics type parallel matrix & 
letter printers and plotters — Epson, C.ltoh, 
Okidata, Nee, Gemini 1 0, TP-I Smith Corona, and 
most others. Hardware driven; works off the serial 
port. Quality construction: Steel DIN connectors 
& Shielded cables. Has these switch selectable 
options: Device 4, 5, 6 or 7; ASCII or PET ASCII; 
7-brt or 8-bit output; upper & lower case or upper 
only. Recommended by PROFESSIONAL 
SOFTWARE for WordPro 3 Plus for the 64. and 
by City Software for PaperClip. 

MW-30B .... Canadian SiSS.95 
Micro \A/orld Electronix, Inc. 

3333 S. Wadsworth Blvd. #C105, Lakewood, CO 80227 



Computer Shop of Calgary 
3515 18th St. S.W. 
Calgary, T2T 4T9 
{403) 243-4356 

Hindson Computer Systems, Ltd. 
7144 Fisher St. S.E. 
Calgary, T2H 0W5 
(403) 252-9576 

TJB Micro Systems, Ltd. 
10991 124th St. 
Edmonton, T5M 0H9 


Conti Electronics 
7204 Main Street 
Vancouver, V5X 3Y4 
(604) 324-0505 


MGI Computer Corp. 
1501 Carling Ave, 
Ottawa, T1Z7M1 
(613) 722-1000 

Richvale Telecommunications 
10610 Bayview (Bayview Plaza) 
Richmond Hill, L4C 3N8 


Micro Shack ot West Canada 
607 45lh St. West 
Saskatoon, S7L 5W5 
(306) 244-6909 


Join the world's largest, active Commodore 

Owners Association. .,^ . i' 

' -v. . -•* . 

* Access to thousands of public domain programs 
on tape and disk for your Commodore 64, VIC 20 
and PET/CBM, ^A"#^l " " *^ ^ > 

• Monthly Ctub Magazine y^ 
Annual Convention 

■ Member Bulletin Board 

• Local Chapter Meetings ^^ H £ ..^^ m j 
Send SI .00 for Program Information Catalogue. 

(Free with membership). Jfa-^V^'f jl 

Membership ^^^B Canada — ' S20 Can. 
Fees for i^^^^H U.S.A. ^ — S20 U.S. 
12 Months ^^^1 Overseas ^" S30 U.S. 

gT.P.U.G. Inc- 

Department '^M'' ^™ 
1912A Avenue Road, Suite 1 
Toronto, Ontario, Canada M5M 4A1 



Basic Utility for the 

Commodore 64 


•easy to learn 
•easy to use 
•program faster and 
more efficiently 
with better results 

included FREE 

Powerful Proarammer's Ucility 

by Bradiempleton 

Manual by Jim Butterfield 

$99.95 from your local Commodore dealer, 
For your nearest dealer call: 















• ft»t f^^f definition 

• «asf t^datlng 

• rapid printing with toul 

fomnaC and record selection 
s^ controf 

• WORDPRO compatiblt 

• i^ to 4000 records on 1541 

MAILPR0 64 $129^^ 

Also avaRaMt for COMIfODORE |9» . ■ SI 79" 

«all for the hil^ #yoiir local dealer: 








A complete Canadian Payroll System for Small 

• 50 Employees per disk (1541 
Calculate and Print Journals • Print 
Cheques • Calculate submissions 
summary for Revenue Canada • 
Accumulates data and prints T-4s • Also 
available for 4032 and 8032 Commodore 

Available from your Commodore Dealer, 

EJi ?1 ri hu i 4^4] hy: 


1262 DON MILLS RD. STE. 4 

TEL: (416) 447-4811 


-jddrcssdble-switch selectable upper/ 
lowi^r, lower/upper Ldse. 

^works with BASIC, WORDPRO, 

VISICALC and other software. 
-IEEE card edge connector for con- 
necting disks Hind other peripherals 
to the PET. 
power from printer unless otherwise 



bjud rates to 9600 - power supply 


MODf i ADA 1450Q $149.00 

ADAPTER — Centronics J6 pin 
ribbon connector handles graphics. 
^WDLL ADA 1800 $129.00 


serial ^ parallel ports ■ true ASCH 
conversion — baud rates to 9600 — 
half or full duplex - X-ON, X-OEF - 
seleclahle carriage return delay — 32 
character buffer - Centronics com- 
MODLL SADI $295.00 

COMMODORE 64 to R5-232 

MODLL ADA 6410 $79.00 

Price? are in US cfoHars 



IEEE - 488 




The BUSSter line of anting and digiuT 
products was designed locolteci data and 
to output ^(gnals lo laboratory 3nd industri- 
al equjpmenl m conjunction with a 
microcomputer system. These powerful 
setf-conlained modules reduce a comput- 
er's workload hv pioviding read or write 
o|>erations to exTernal devices. They are 
controlled as ^lave interfaces to real-world 
physical appln altons. Control is over 
an lEEE-488 (GPIB) bus or RS-2J2 pori. 
BUSSter modules are avallatile in several digital and analog c onliHuralions. The internal 
buffer and timer provide ilexibflity by allowing the BUSSlet 10 collet t data whtle the host 

( omputer i^ busy with other tasks. 

BUSSter E16— 16 channel version ot the 
^4 5695.00 

Add the suffix -G tor IEEE-488 (GPfB) or -R for 

All prices are USA only. Prices and specifica- 
tions subject to change without notice. 


Purchase a BUSSter product, use it, and if you 

are not completely satisfied, return it wirhm 30 

days and receive a tull refund. 

US Dollars Quoted 

$10 00 Shipprng S Handling 


BUSSter ACA— 64 channel digital input module 
to read 64 digital signals BuiH-in 
butter $495.00 

BUSSter 864—64 channel digital output 
module to send 64 digital signals $495.00 

BUSSter C64— 64 cf^annel digital inputoulpul 
module to read 32 and write 32 digital signals. 
Built-in buffer $495.00 

BUSSter D16— 16 channel analog input 
module to read up to 1 6 analog signals with 8 
bit resolution (i/j%) Built-in buffer S495.00 

BUSSter D32— 32 channel version of the 
D16 $595,00 

BUSSter E4— 4 channel analog output module 
to send 4 analog signals with 1 2 bit resolution 
I 06%) $495.00 



BUSSter £8- 

-8 channel version of the 


Connecticut microcomputer, Inc. 


36 Del Mar Drive 
Brookfield, Ct 06804 
(203)775-4595 TWX 710-456-0052 






CHART PAC 64 finest chart maker around 
SMARTEES action packed maze game 


^' THE BANKER THE finest check BOOK reconciliation 

program on the market 


data adaptable information system 



• ASTRO POSITIONS find the stars and cast 

YOUR horoscope 



ULTRABASIC WITH turtle graphics AND sound 

TINY FORTH fig forth implementation 
EDIT/ASM complete editor assembler package 









WORDS & CALCS spread sheet for the c-64 allows text $42.95 














We are actively seeking SOFTWARE AUTHORS. 



Dealer Inquiries Invited 

Write for our FREE Catalogue 

for VIC and C-64 

Canadian manufacturer and distributor for ABACUS Software Products 

Suite 210, 

5950 Cote des Neiges 

Monlreai, Quebec H3S 1Z6 



Have you ever wondered whal the /%"%$%& is the difference between 'c'l 
%'/r and "c/ %'/r? Tired of flipping that swilch just to do a 'COLLECT'? 
The SUPERPET TUTORIAL DISK reveals the mysteries of the data editing 
commands and 'mela-characler' strings, using clear and useful examples. II 
also contains: 

■ Syntax of all microEDITQR search strings, 

' information on all SuperPET/PET tile types. 

" Examples of ail the disk access commands, -. 

' Instructions on issuing all DOS commands. 

■ Information on RS-232C and terminal facilities 
- A table of system addresses and switches, 

■ Decimal & hex addresses of all 6809 ROM routines. 
' Hexadecimal and decimal ASCII translation tables, 

A general description of the microEDlTOR. 
Explanations of ALL microEDITOR commands 
Explanations of ALL microMONITOR commands. 
Explanations of all SETUP menu options. 
Explanations of all DOS error messages. 
Information on the Programmed Function Keys. 
Instructions on automating disk maintenance. 
Hexadecimal -decimal conversion table, 
6609 Assembler opcodes^ modes and lengths. 

This product costs only $39.95, postage and handling included The items 
marked v^ith ' " ' are also available on a Reference Card (which is included 
free with each Tutorial Disk ordered) The Reference card alone costs just 
SlOJf you orderthe Tutorial, the disk you receive will also contain a selection 

of the best public-domain SuperPET software from various sources. Also 
available is the APL-microEDITOR interface, which allows use of the mi- 
cfoEDlTOR for editing APL functions and variables. Volume discounts are 
available(40%off for2-l0 50%off for 11-100). 

Send a check now {and specify 4040 or 8050 format); or write for more 
informatror^ (including a free SuperPET bibliography) to: 

Dyadic Resources Corporation 

P.O.Box 1524 Station 'A' 

Vancouver. B.C. Canada V6C 2P7 

(cV %vr hangs up: "c/%vr' does nothing; but '■c"/%V/»eft justifies.) 



• 40 Graphics Statements 

• 10 Sprite Statements 



• FAST program execution 

• auto line numbering 

• line renumbering 

• program structures 

• merging program segments 

• long variable names 

• named procedures 

• parameter passing 

• local and global variables 

• random access disk files 

• stop key disable 

• End Of File detection 

What does this and more? COMAL 
What is the cost? Only $19*95 

All this and much, much more on disk with many sample 
proarams ONLY Sl9 9S. Also available: COMAL HANDBOOK, 
GETS ORGANIZED, $19 95 COMAL TODAY newsletter, $14.95. 
Send check or Money Order in US Dollsrs plus $Z handling tO: 
COMAL Users Croup, U.S A., Limited. 5501 Groveland Ter.. 
Madison Wl 53716 phone: 608'Z22-4432. COMMODORE 64 
trademark of Commodore Electronics Ltd. CAPTAIN COMAL is 
trademark of COMAL Users Group. U.S.A., Limited. 

C-10 For 35c (100 LOT) 






• 100% ERROR FREE 




—A/f Prices Include U.S. Shipping and Handling— 

•""COMPUTER GRADE" tape is verv high response 

oxide formulation by a Major U.S. Manufacturer. 
•"BASF tapes are the top of the line oxide 

formulation for the BASF corporation. 
•'For orders of 1000 or more you may specify color 

choice (Black, Beige, or White). 

'"custom LENGTHS 


LENGTH 25 LOT 100 LOT 1000 LOT 

C-5 .45/11.25 ,35/35.00 .30/300.00 

C-10 .50/12.50 .35/35.00 .30/300.00 

C-20 .50/13.75 .40/40.00 .35/350.00 

C-30 .60/15.00 .45/45.00 .40/400.00 


C-5 .50/12.50 .40/40.00 .35/350.00 

C-10 .55/13.75 .40/40.00 .35/350.00 

C-20 .60/15.00 .45/45.00 .40/400.00 

C-30 .65/16.25 .50/50.00 .45/450.00 

5000 Lot Prices deduct 1c from 1000 lot price 

10000 Lot Prices deduct 2c from 1000 lot price 

Quality Noreico Cassette Case. ..and 

Label Prices 

25-249 Cases/. 20 Ea. 250/.13Ea. 1000/. 11 Ea. 
25-499 Soft Poly Cases/. 18 Ea. 500/. 11 Ea. 

Labels -Sheet 12/.20 120/1.70 1200/14.50 
Tractor Feed Cassette Labels (1 up) 1000/14.50 

High Speed Digital Computer Cassette Duplicators 

(call for information) 

Send Cashier's Checks. Money Orders, 

and Checiis To: 



KansasCity, Mo. 64112 


For Canadian Orders ONLY add shipping as follows: 

25-99 tapes add $2.00 to total cost 

For each 100 tapes ordered add $6.00 to total cost 

For cases add same amounts as above for shipping 








Bo ihe mnm 




No maiter which direction you wish ro rrovel in, experience 
rhe odvanroge of compurercommunicorions with The 
SMART 64 Terminai. Discover rhe program rhor purs you 
onrheRighrRoodro: Public-Access Networl^s, Universiry 
Sysrems, Privore Compony Computers and Financial Services. 

The SMART 64 Terminal designed wirh Qualiry-Dred feorures. 
Affordable Pricing. , .AndSen/Jce. 

So why nor rravel rhe communications highways rhe SMART way! 
Accessories included: 



Q Selecrive 5rorQg& of I^Bceived 

□ AformTimer. 

□ AOordOCoiOperorion'. 
n Auto-Dioi 

□ User-Dofined Funaion Keys. 
Screen Colors. Prinrerond 
Modem Setting. 

D Screen Print. 

□ Formarred Lines. 

□ Review. Roarronge. PrinrFiles. 

□ Sends/Receives Progroms and 
Files of ANY SIZE. 

□ Disk \Vedge Builr-ln! 

□ Adjustable rronsmir/recelve tobies allow custom requirements. Ihese and other features make The 5MAf<T64 Terminal 
the best choice for grand touring telecommunications. 

"SupporTs 60 column corfndge 
by DQrQ20CorporoMori 

Dealer AvQilobiliry 
Coll (200) 369-0383 


P.O. DOX 2940, New Hoven. 0. 065 1 5 

Prices are in US dollais. 









n the age of the computer, everyone 

from the school child to Ihe Chairman ot 
the Board should be at home at the 
computer keyboard Soon there will be 
a computer terminal on every desk and 
in every home. Learn how to use it right 
., and have some fun at the same time f 

Rated THE BEST educational program for ihe VIC 20^^ 
by Creative Computing Magazine 


The proven v/ay to iearn touch typing. 

COMMODORE64 Tape$21.95 COMMODORE64 Disk$24.95 
VIC20(unexpanded) Tape $21.95 

Typing Tutor plus Word Invaders makes (earning the keyboard easy and fun! 
Typing Tulor teaches Ihe keyboard in easy steps. Word Invaders makes typing 
practice an entertaining game. Highly praised by customers: 

"Typing Tutons great!", "Fantastic". "Excellent", HighquaUty", '^Oui children 

(ages 7-1 5} titeraiiy waif in tine to use it. ", "Even my Intie sister likes it' \ "Word In- 
vaders IS sensat'onal'' 

Customer comment says it all, . . 

" . . it was everything you advenised it would be. tn three weeks, my i 3 year old 
son. who had never typed before, wastypsngSSw.p.m. I had improved rr}y typing 
speed 15 wp.m. and my tmsband was able to keep up with his coftege typing 
class by practicing at home." 


['-I'lDQi FOR 'HI y\iin 









Put yourself in ihe pilot's seal! A very challengrng 
realistic simulalJon of jnstrumenl flying in a liglnl 
plane. Take oft, na\/igate over difflcull lertain, and 

land at one of the 4 aitporls. Arlificial iiorizon, ILS, 
and otfier working fnstiumenls on screen. Full air- 
cralt features Realistic aircraft performance — 
stalls/spins, etc. Transpori yourself to a real-iime 
adventure in the sky. Flight tested by professional 
pilots and judged "terrific" I 

Shipping and handling $1.00 per 
order. CA residents add 6% tax 





P.O. Box 9403, San Rafael, CA 94912 (41 5) 499-0850 

Programmers: Write to our New Program Manager concerning any exceptional VIC 20TM or Commodore 64TM game or ottier program you tiave developed. 




Write Advanced Programs Quickly! 

Tired of writing reams of code? Take a quantum jump into the 
future! Tommorrow's programmers are using sollware devel- 
opment tools such as THE TOOL. THE TOOL lets you make 
use of powerful machine language subroutines. Your pro- 
grams will execute fast using less code. Input/output routines 
and professional looking screens are easily created. 

Features of THE TOOL include : 

• Screen Design functions which allow controlled input and 

• High Resolution Graphics with alpha/numeric display 

• Screen Save and Load functions (for hi-res and text screens) 

• Structured BASIC instructions , e.g, IF THEN ELSE 

• Programming Aids (e.g. auto, renumber, delete, find, trace, 

• 2 keystroke disk commands (DOS support extensions) 

• Game Design Instructions (joy, scroll, screen, colour) 

• A 50 page user manual 

For The Commodore 64 ™ 

developed by Micro Application 

distributed by BMB Compuscience Canada Ltd 

500 Steeles Avenue, 
Milton, Ontario 

L9T 3P7 


Dealer Inquiries Invited 




Acc# , 


Postal/Zip Code 

DMasterCard DCheque 
__^_^_^_„ Expiry 

Please include numbers above name 

Add S2.00 for shipping S handling 
Ontario residents add 7% sales tax. 






APRIL 6 to 8/S4 



64 PR 

• ■ • 

• ■ 


■ A^AL■IA^ LOLLAi^^ -^ 


'T "■ 






3 9995 

i 7^95 


S 6995 

i 5R95 



BFAu ..AM [Chalkbooril) [CAF?) 

49 95 

42 95 

PAINT MAGIC (Datamost)IC a D| 

09 96 








34 95 

KOALA PAD fkoala Tech) 


107 50 






32 50 

SPELLOCOPTER j Design ware) (D J 



M;NER 20dVer (WSTON) {CAP] 

59 95 


49 95 

44 95 




TRIVIA 1[Cymbol]|Dl 






SVSREG [Solidusj ID] 






149 95 

119 95 


69 95 

b4 95 

GEMINI X[SloiMicooics)inciuciingPR1NTtR 

FLIGHT SIMIU AT01? II [SublogicJ (D| 


139 95 



495 00 


59 95 




i^TRIP POKt''' lArtw^cx] [D] 


49 95 

INSEARCHQF |Spimoke<) (D) 


42 95 



43 95 

PRfN^tPPAPER 30M 9\''xir |3300Bnis boxl 


4? 95 

PAPEIf CUP (Barterie^ included) 



MUSIC CAlC IWavelorm) [DJ 

100 00 

75 00 

"■RbNCH fAJ^VSr!?IPTMl3'ihC0mln' J(D) » 


129 95 




SEX'JA. ."ONFIDE^JCE fSimutech] fCAR) 

09 95 

53 95 




IRC INC.UEJtS Ipi. BONU*> CREDIT _■_' • 1_^ 

CL^z^w-:..* : 

~ - -r ^^—^^^^m 





BOX "340" STATION "W", TORONTO, ONTARIO M6M $B9 (416) 491-2942 

Ontario Residents odd 7% sates tax. Send certified ch&que cc money order. Viso Add S2.50 tor shipping and handling. All itema subject to avdlabilitv- Prbes 
ond Master Cord ptease inclixie ccsd numbof. ©Jiplrv cJole end signohjr© sut^ecf lo change without notice. 

'Dellwefv bv U.P.S witfiln 3 days of order date If Stocked by local suppliers. 

For affordable business 
softLuar e. putMiCRo SPEC In 

t_i LJ i_i T_r L_m] — 

MicroSpec is serious about offering sophisticated busi- 
ness programs at an affordable price. And there's no 

skimping on the quality or capabilities of the programs. 

Whether you're using DBM, 1NV, G/L, PAY, A/R, A/R Fixed 
Asset, Rental Property Management, Mail List, or 
Checkbook Manager you'll find MicroSpec programs 
offer the greatest flexibility and optimum performance 
for your specific needs. And you'll like the price! 
Proven MicroSpec business programs are available NOW 
for the Commodore 54 and VIC 20 (trademarks of Com- 
modore). Applications for other popular micros will be 
coming soon, 

A leader in the design of affordable business systems - 
MicroSpec. Put it in your memory. 

For more information, contact your local dealer, 

MicroSpec, Inc. 

P.O. Box 863085 * Piano, TX 75086 

(Dealer inquiries welcome) 



You'd like free software, 
we'd like reviews. The 
Book Company seeks addi- 
tional reviewers for The 
Book of Commodore Soft- 
ware. For details, write 
and send a sample review 

The Book Company 
11223 S. Hindry Ave. 
Los Angeles, CA 90045 






rtising Index 


Issue* / Pace 









Product Name (Description) 


Academy Software 



VIC20/C64 Software 


Beacon Software 



Business Packages 

BMB Compuscience 




The TOOL (programming aid) 

Micro Application 

Boslon EducaMonal Com puling 


Educational Software 

Canadian Software Source 



C64 Software 



Commodore software 

Cardinal SoJTware 




VIC20/C64 Games, UlilUies, Edu. 

COMAL Users Group 




-U- -I- |- 

Cornpurer Markeling\Canadian Micro 




Calc Result (spreadsf^eet prog.) 

Handle Software ab 

Dexleriiy Software 


C64/VIC 20 games 

Dyadic Resources Corp. 


SuperPET information 

Eastern House 




MAE Assembler 

Execom Corp, 


40/80 Screen Select 



C64 wordprocessor 

Info Mag Inc. 


Commodore software 

Input Syslema Inc. 




Typro (wordprocessor) 

Ivis Halhor 




Laser Strike 

King Micmware 



VIC/ 64 /PET software 

M agreeable Soli ware 





Slock Helper 

Microcompuler Solutions 




C64 Provincial Payroll 

Micro Ware 




C64 Disk Utility 

Microiechnic SoluUons 




C64/VIC 20 Business Software 




C64 Terminal software 

Midw(^si Micro Inc, 





VIC20/C64 Graphics Util 
VIC20/C64 Super Term 

Performance Micro Products 



C64 Forth 

PR Communications 


J Buti:ertield video tutor 

Pro- Line Software 






Commodore software 












POWER 64 Eprogramming aid) 





Mail Pro 







Psycom Soli ware Int'l 



C64 software 

Public Domain Inc. 


Commodore software 

RAK Electronics 


VIC20/C64 Games, Utilities 

Silicom International 


Super Base 64 [data base) 

Precision Software 

Southern Solutions 



Business packages 

Wi tiam Robbins Software 





VIC/ 64 /PET Software 


Issue' / Page 








Product Name (Description) 


Apropos Technology 



VOO/C64 Printer, Exp board 

Computer Wcjrksliops 




\Computer Marketing 


Connecticut microcomputer 



PET/CBM Interface adapters 





Analog/ Digital I/O 

Eastern House 



Trap 65 
VIC Rabbit 
Eprom Programmer 
Communications Bd 

George M Drake & Associates 





Colour Monitors 


Gosub International 




Flexi key 

Micro Ware 


Tape Interface 
VIC20 RAM Expand 

Micro World Elecironix 





VIC20/C64 Printer Interface 

Midwest Micro Inc, 


Smart ASCII Plus 

Midwest Peripherals 





VIC20 Expander 

Precision Technoloqy 




VIC20/C64 Expander Boards 

Rich vale Telecommunications 







C64 Link (IEEE adapter) + software 

Zanim Systems 



Home control hardware 








r F ■•^-^ 




Product Name (Description) 


The Book Company 


Software review/txchange 

Computer Workshops 


Apr83 products list 

The Code Works 




■CURSOR', C64 Tapt Magazine 

Int'l Marketing Services 




Disk, printers, misc. 

Midnight Software Gazelle 




Subscriber Info 

Toronto PET Users Croup 






Membership mto 

7anim Systems 


CAD/CAM Tutorial 

Th# TroniGctor 


Volumes. Iuu« 01 1 


for ° the " commodore ° 64 

challenge the asteroid field, 

maneuver the caves of ice, 

experience the thrill, 

play laser strike. 

Laser strike, written in full machine language for the Commodore 64< 

Commodore 64 is a registered trademark 
of Commodore Business Machines Inc. 

Visa/MC/Check/Money Order accepted 

In U.S. 

Cassette $24.95 

Disk $29.95 

I sis Hathor Digital Productions 

6184 Verdura Ave. 


(805) 964-6335 

Add $2.00 postage and handling 

California residents add 6% sales tax 

% Ask about Laser strike posters 

Call Toll Frvfl- T-a(K]-5aS-9803 



In U.K. 
Cassette C 9.00 VAT included 
C19-95 VAT included 
Isis Hathor U.K. 
Andrew Barrow 
Reyden, Perkslane 
Prestwood, Gt. Missenden 
Bucks, England HP160JD 


You will be billed 

for postage and handling 


-I . . . 


Orr all monitO' e'ed'Ofics . . . 3yrs. onaHCPT's 

The popular choice 

for popular computers 

. . . at a popular price. 

The Color-I Monitor is designed to perform superbly 
with your Apple II, Atari or VIC Commodore personal 
computer and others Highly styled cabinet. It accepts 
a composite video signal to produce vivid, richly col- 
ored graphic and sharp text displays. Very reasonably 
priced, the Color-I is a giant step above home TV sets 
and other monitors. 

Just write, or call to receive complete specifications ■ FCC/ULappro\. 

on the Amdek Color-I Monitor. 

2201 Lively Blvd • Elk Grove Village, IL 6Q007 -* 

(312) 364-1 180 TLX: 25-4786 

REGIONAL OFFICES. CaJif. (714) 662-3949 

Amdek. . . your guide to innovative computing! 

Quality 260(H) x 300(V) line resolution. 

Built-in speaker and audio amplifier. 

Front mounted controls for easy adjustment. 

Interface cables available for Atari and 
VIC Commodore computers. 


Texas (81 7) 498-2334